• Welcome, Guest. Please login.
July 05, 2020, 08:13:20 am


Welcome to the SQLitening support forums!

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Paul Squires

A little history how this project came about. Two weeks ago, I spent an entire day working on a client/server implementation for the new Cheetah Database. Sure, it worked, but I was finding that I was spending a lot of time trying to make it efficient for getting commands to the server. For example, say you had to add 100 records. In Cheetah, you could xdbAddRecord 100 times causing 100 calls across the network to the server - or, I could write some elaborate system that batched/buffered the records until there was sufficient quantity enough to send to the server at once (say, every 20 records making it only 5 calls to the server).

Then came queries.... I did not want to build a query processor like was in the original Cheetah but actioning queries in a client/server environment meant that in order to make it efficient I would have to have the server perform the query. I struggled with having to make the decision to build the query processor and then I started looking at the way SQL was set up. SQL is built to be extremely suitable for a network environment. Multiple SQL commands and be sent at any one time and they are in text format making it easy to send (and compress or encrypt if necessary). I then thought that maybe it would be a great idea to concentrate on SQLite for the backend of the client/server rather than Cheetah. Doing so meant 95% of all of the hard work would be done for me. I would only have to concentrate on optimizing the client/server part rather than the database engine itself. I roughed up the code and got it working to a point where I am very happy with the result (so far).

Benefits of SQLite is that it is SQL based meaning that there is a vast amount of tutorials and info available for people to use when wanting to manipulate their data. SQLite is transaction based (something that Cheetah never was, or probably never would be), so data integrity was much better. SQLite is small, light weight, and easy to install (basically copy the DLL). SQLite has MANY developers pouring over the code so the engine is very robust, complete, and constantly being updated.

We will see how this project develops over the next couple of months but my gut feeling is that it will become my primary database product for my development needs. The product is designed in such a way that you can use it locally or with the full-blown client/server model. The choice is yours and there is virtually no extra code needed to add to your programs to convert from model to the other.

Quote from: tom cone jr on September 03, 2007, 01:49:03 pm
Being able to see the source code for "testclient.exe" would be helpful.  Hope you'll consider releasing it soon.

-- tom

The only problem is that testclient.exe is written using FireFly 3.... and I am the only one who has a copy of that.  :)

Well, here it is:  http://www.planetsquires.com/files/sqlite_test.zip

The details are in the file 'readme.pdf'.

This is still an early work-in-progress but it shows the benefits of working with a proven, sql based, database such as SQLite and showcases the robustness of the client/server model.

Hope it works for you. For this demo, all you need to do unzip the files to a directory. Run the server 'sql3server.exe' and then run the test client program 'testclient.exe'. I'm sure that you'll figure it out.  ;)

Comments, suggestions, please post.

Source code is not available. Maybe it will be some day, but for now it is just freeware.