I’m relatively new to programming as you will probably see when I ask this question. I want to store my database on a network computer but I don’t know the proper code to make this happen. I’ve only today learned how to determine where to save this file on my local machine.
You need a server. Saving over a network file system is, was, and always will be a disaster waiting to happen. Popular client server databases include MySQL and PostgreSQL. You’ll need a Xojo database license (or Pro) to interact with them. I offer a free SQLite based option, which may or may not meet your needs.
I’m using SQLite currently, if you have a possible solution please advise.
Right. You need a server. See above link.
HI Brad, I did go to your site and a great deal of the terminology is admittedly beyond my experience level. What I’m getting from it is that SSD will block the file when in use and as the name implies, give a higher degree of stability. Is this something a newby like myself can implement with little frustration?
Heh. The “stable” part of the name is really just a horse metaphor.
The first thing you should get an understanding of is why you need a server rather than just accessing a database file over a network file system (e.g. file sharing). Short answer is that network file systems aren’t anywhere near as reliable as a local disk to begin with. Longer answer is that when multiple users get involved, “locking” becomes a huge issue. A “database server”, like a “web server”, provides an Internet-ready interface for client software to query the database in a safe, coordinated manner. But this issue is definitely worth some Googling time so you’re not just relying on some guy’s short answer.
Second, with SSD, the API (functions you call) for using a local file is identical to the API for using a remote server. Both APIs on based on the Xojo Database API. That should make it relatively accessible for novice programmers. Or at least not terribly inaccessible if you already know the basics of using SQLite with Xojo. I designed SSD to be easy to develop with and deploy, like point and click simple to deploy. Other servers have lots of fancy features. But this is something you could instruct a non-techie person to set up over the phone. I’ve done it many times.
If you were asking if you could write your own database server… Sure. Personally, I think everyone should as a right of passage, but I enjoy watching a lot of weird and terrible things. Seriously… Find a database server you’re comfortable with and use it. Don’t reinvent the wheel. There are wonderful choices out there for every conceivable need.
HI Brad, first of all, thank you for your time, it’s much appreciated. No, I have no illusions about developing my own server, as you pointed out, plenty of people have gone down that path for me. The program I’m developing is very industry specific and would only be used in a small and local environment consisting of maybe 5 users tops. That said, would a simple retired desktop computer work well in conjunction with your product?
If your retired desktop can run Windows 7 or later, a recent Ubuntu, or Mac OS X 10.6, it should be fine for any small application with any of the popular database servers. I’ve done several SSD deployments with $300 Windows 7 netbooks.
Yes, at the least it would be windows 7. I’ll do more research and spend more time on your site exploring the SSD. I will undoubtedly develop questions as I learn about your product, is this a good venue for those questions or do you prefer the email link on your site?
Both are fine.
Hey Brad - I don’t want to completely hijack this thread, but I recently decided to use cubeSQL for a largish distributed system project. We are still in development, so it is not too late to change the underlying db server.
Can you briefly outline the differences between SSD and cubeSQL?
cubeSQL is wonderful. If it’s working for you and you like it, cool. Three years ago, I was close to homicidal over the plugin, the transition from a REAL product to a Marco product, etc. I hear it’s a lot better now.
SSD doesn’t use a plugin. The communications layer is pure Xojo, so if you run into trouble, you can debug it. Opacity is usually the source of every giant problem I run into with developer stuff, so I’m big on transparency. Having written a couple database plugins for REALbasic, I’m just not optimistic that they won’t generally have problems that take months or years to work through.
SSD has server source available for $70-ish. Client library source is available for free. The SSD server is really minimal. I don’t try to resolve deadlocks or anything. You need to pay attention to your queries and schemata.
I’m using current CubeSQL Server just because it is so simple to install and to administrate and because with its Admin app, one can upload an existing SQLite database to the server, define some users and continue in multiuser-mode. I have no problems with plugin or crashes or whatsoever. It works rocksolid. I’m using it on a OSX Server and for testing also on a Ubuntu Linux Server. It works on Windows as well.
I have not tested Brad’s server yet, but as far as I can judge from the technical expertise of his posts on this forum, I am highly confident that it is a very good solution as well.
Thank you Oliver, I appreciate the feedback and I’ll look into this today.
Brian, for development you can use a db server that runs on your local machine, and not have to move it to a separate computer until deployment (or at all if you are the only one using it). I run both MySQL and MS-SQL server on my machines for devlopment. I cannot speak for the cubeSQL or SSD, but I often use MySQL which is open source, relatively easy to use, and lots of help available. It is also great for webdevelopment as it is almost always available on web hosting services. For me, the fact that I can develop on a Windows machine and then move to Linux/Apache for hosting, without changing DB code, is wonderful.
Thank you Jack. Although I’m making great progress with the development of my project, I have yet to purchase a Xojo license and server license. At this time I’m simply trying to gain some experience with the options that are freely available to me so that I can make an informed decision on which way to go.
Brad, to be clear, your product, SSD, and SQLite are the only servers that I can run without a Xojo or server license?
SQLite itself is not a “server”. You are correct that SSD (local or server) and SQLite do not require a database license. Monkeybread Software also has some SQL classes in their MBS plugin that do not require a database license. They have a different API.
General advice on this… You can develop for all of these choices for free. Perhaps some server licenses are a bit more expensive than you can justify. But don’t let the cost of Xojo Database license or MBS deter you from picking either one if they turn out to be the best choice for you.
You can create an entire application using anything - say PostgreSQL (an awesome db server product) and Xojo
And you can run the code in the IDE
The only time you need to obtain licenses is when you want to compile an stand alone executable to deploy & give to other people
This way you can try out lots of ideas, servers whatever and build your application and be satisfied it is going to work as you expect and eventually buy licenses
Thanks everybody, it’s a learning process and I appreciate your insight as well as your guidance and above all, patience. I’m having a great time doing this but it’s a far cry from a hammer and chop saw which are my true trade-tools.
Please keep coming with any information you see fit to provide.