SQLitening Database System version 1.11 is now available for download.
SQLitening is a client/server implementation of the very popular SQLite database. The code base was written by, and is currently being maintained by, Fred Meier. The project is being supported and on the PlanetSquires website and forums.
SQLitening is a programmer's library in standard Win32 DLL form. It is installed as a standard Windows Service. In addition to client/server mode, the library allows the programmer to also access SQLite databases in local mode. In either mode (local or client/server), the database is extremely fast and robust.
Best of all, SQLitening is a free, open source project.
Changes in Version 1.11
==================<[ Version 1.11 January 17, 2009 ]>==================
1. Changed slGetInsertID to prevent random GPF's.
My testing says that PB9 will handle Quads returning from C but only if you use early binding (no call Dword). SQLitening.Dll must use late binding cause it will dynamically call either SQLite3.Dll or SQLiteningClient.Dll therefore PB9 doesn't help here. SQLiteningServer, on the other hand, does use early binding so PB9 can do it's thing there. Local mode will no longer call the SQLite API to obtain the last inserted ID instead it will get it using the last_insert_rowid() function. This is a little slower than the API call but should eliminate the GPF problem. Remote mode will continue calling the API but have removed the assembler stuff and will let PB9 do it's Quad thing.
2. Changed a failed connect to remain in remote mode so all following commands will also fail. It was returning to nurtural mode so following commands would process in local mode --- not good.
3. Added a new optional parameter to the slConnect command called wsOutData. OutData, if parm is passed and if return is zero, will contain the following values delimited by the $BS character. There is only one value being returned now but others may be added in future so use the parse$ command.
1 = The unique TcpFileNumber assigned by the server to this connection. This can be used whenever a unique number for a connection is needed. This same value is passed to ceratin exits.
IMPORTANT!!! All programs using slConnect should be recompiled when using this release.
4. Added another parm to be passed to a user coded proc. This new parm (byval rlTcpFileNumber as Long) will contain the unique number assigned by the server to a connection.
IMPORTANT!!! All user procs should be recompiled when using this release.
5. Changed the starting of SQLiteningServerMonitor to be a conditional compile. If SQLiteningServer is compiled with %CompileStartServerMonitor = %True then SQLiteningServerMonitor will be started when SQLiteningServer is started.
%CompileStartServerMonitor = %False is the default.
6. Added the concept of 'Exits' to SQLiteningServer. The term 'Exit' comes from the main process (SQLiteningServer.Exe) 'Exiting' to a sub process (SQLiteningServerExits.Dll) which contains your custom code and then waiting for the return code. If the return is zero then the server will continue to process else will return that error value to the calling application program. Exits are placed at strategic points in the process loop of SQLiteningServer. More exits may be added in future. This sub process must be thread safe, it can access SQLite3.Dll directly but it can not use SQLitening.Dll because it is not thread safe. See the sample source SQLiteningServerExits.Bas for what exits are available and what parameters are passed and other information. There currently are 5 exits available and are controlled by the following conditional compile equates:
%CompileExit_1_Connect, %CompileExit_2_Disconnect, %CompileExit_3_Access
%CompileExit_101_Start, %CompileExit_102_Stop
The default is that they are all %False. Because the exits are activated only if you want them, there is no overhead for the ones who don't use them.
7. Added the 'Q' and 'c' ModChars to slSelAry. The 'Q' will return a one dimension array with delimited column values. The 'c' will not return the column names in entry zero.
Q# = Return a one dimension array where each column is delimited by a single character. That character is determined by the ascii value at #. The default is to return a two dimension array.
c = Do not return the column names as a row of data at index zero. The default is to return the column names as row zero.
8. Change SQLitening.Dll so all sets are automatically closed when the Dll is detached.
9. Update SQLite3.Dll to version 3.6.7.
SQLitening is a client/server implementation of the very popular SQLite database. The code base was written by, and is currently being maintained by, Fred Meier. The project is being supported and on the PlanetSquires website and forums.
SQLitening is a programmer's library in standard Win32 DLL form. It is installed as a standard Windows Service. In addition to client/server mode, the library allows the programmer to also access SQLite databases in local mode. In either mode (local or client/server), the database is extremely fast and robust.
Best of all, SQLitening is a free, open source project.
Changes in Version 1.11
==================<[ Version 1.11 January 17, 2009 ]>==================
1. Changed slGetInsertID to prevent random GPF's.
My testing says that PB9 will handle Quads returning from C but only if you use early binding (no call Dword). SQLitening.Dll must use late binding cause it will dynamically call either SQLite3.Dll or SQLiteningClient.Dll therefore PB9 doesn't help here. SQLiteningServer, on the other hand, does use early binding so PB9 can do it's thing there. Local mode will no longer call the SQLite API to obtain the last inserted ID instead it will get it using the last_insert_rowid() function. This is a little slower than the API call but should eliminate the GPF problem. Remote mode will continue calling the API but have removed the assembler stuff and will let PB9 do it's Quad thing.
2. Changed a failed connect to remain in remote mode so all following commands will also fail. It was returning to nurtural mode so following commands would process in local mode --- not good.
3. Added a new optional parameter to the slConnect command called wsOutData. OutData, if parm is passed and if return is zero, will contain the following values delimited by the $BS character. There is only one value being returned now but others may be added in future so use the parse$ command.
1 = The unique TcpFileNumber assigned by the server to this connection. This can be used whenever a unique number for a connection is needed. This same value is passed to ceratin exits.
IMPORTANT!!! All programs using slConnect should be recompiled when using this release.
4. Added another parm to be passed to a user coded proc. This new parm (byval rlTcpFileNumber as Long) will contain the unique number assigned by the server to a connection.
IMPORTANT!!! All user procs should be recompiled when using this release.
5. Changed the starting of SQLiteningServerMonitor to be a conditional compile. If SQLiteningServer is compiled with %CompileStartServerMonitor = %True then SQLiteningServerMonitor will be started when SQLiteningServer is started.
%CompileStartServerMonitor = %False is the default.
6. Added the concept of 'Exits' to SQLiteningServer. The term 'Exit' comes from the main process (SQLiteningServer.Exe) 'Exiting' to a sub process (SQLiteningServerExits.Dll) which contains your custom code and then waiting for the return code. If the return is zero then the server will continue to process else will return that error value to the calling application program. Exits are placed at strategic points in the process loop of SQLiteningServer. More exits may be added in future. This sub process must be thread safe, it can access SQLite3.Dll directly but it can not use SQLitening.Dll because it is not thread safe. See the sample source SQLiteningServerExits.Bas for what exits are available and what parameters are passed and other information. There currently are 5 exits available and are controlled by the following conditional compile equates:
%CompileExit_1_Connect, %CompileExit_2_Disconnect, %CompileExit_3_Access
%CompileExit_101_Start, %CompileExit_102_Stop
The default is that they are all %False. Because the exits are activated only if you want them, there is no overhead for the ones who don't use them.
7. Added the 'Q' and 'c' ModChars to slSelAry. The 'Q' will return a one dimension array with delimited column values. The 'c' will not return the column names in entry zero.
Q# = Return a one dimension array where each column is delimited by a single character. That character is determined by the ascii value at #. The default is to return a two dimension array.
c = Do not return the column names as a row of data at index zero. The default is to return the column names as row zero.
8. Change SQLitening.Dll so all sets are automatically closed when the Dll is detached.
9. Update SQLite3.Dll to version 3.6.7.
Comment