Home

SQL4Sockets - A SQLite Based Database Server***.

SQL4Sockets does not provide any locking over and above that provided by SQLite, if it receives a request to update and the database is already locked by another user it returns error code 5. In this scenario the RB client classes are designed to poll the server until the lock is released or optionally a timeout is reached. Simultaneous reads are no problem.

Research has shown developers massively over-estimate the amount of concurrency that actually takes place and so often use sledge-hammers to crack walnuts. When you consider most updates are completed in fractions of seconds the likelihood of concurrency occurring in a small workgroup is not that high, and even if it does occur one user having to wait a few fractions of a second for another users updates to be completed is surely not a big issue.

Because the course grain locking provided by SQLite is so simplistic, i.e. the whole database, it doesn't add much overhead and updates are extremely quick. When you have a small workgroup of users SQL4Sockets is often quicker than databases that allow multiple simultaneous updates using complicated field-level or even record-level locking algorithms.

You can also set-up SQL4Sockets to only accept connections from a list of IP addresses, or from a list of users with passwords or a combination of the two. If you don't set-up these lists it will accept connections from any client who sends a request on the specified port.

Communication between the client and SQL4Sockets is simple delimited UTF8 encoded text over a TCP socket. View the protocol here.

This implementation avoids the Windows file-locking issue discussed here as only one user (i.e. SQL4Sockets server) is accessing the file.

Summary Of Features:

-donationware - we just request a charitable donation per deployment.
-multi-user - supports up to 15 simultaneous connections.
-enables access to a SQLite database over a TCP network.
-avoids the Windows file-locking issue discussed here: http://www.sqlite.org/faq.html#q7
-can be set-up to only accept connections from a list of IP addresses, or from a list of users with passwords, or a combination of the two.
-can be used with RB Standard.
-RB demo available with client classes that wrap up the protocol in a style very similar to the standard RB database API.
-no code changes for remote or local deployment.
-communication is via UTF8 encoded, delimited text over a TCP socket.
-simple copy and paste installation.

**** Can now also be used to share an ODBC data source.






Downloads


SQL4Sockets Server - (Maximum 15 connections)

You are free to use and redistribute SQL4Sockets as long as you make a donation to charity for each deployment.
The size of the donation and the charity are entirely a matter of your own choosing, complying with this requisit is a matter for your own conscience.

Please mention SQL4Sockets when making your donation and we would appreciate an email advising us of the charity you have chosen so maybe we can maintain and publish a list of the good causes we have helped in our own small way. Thank you.

SQL4Sockets is provided as is with no warranty of any kind, you use it entirely at your own risk. However, if you do discover a bug please notify us and we will endeavour to fix it.

There are no plans for future developments for SQL4Sockets but feature requests may be considered for a bounty.

Free download