Welcome to the SQLitening support forums!
Started by Fred Meier, July 09, 2010, 11:04:48 AM
Quote#===================<[ Version 1.4 July 12, 2010 ]>=================== 1. SQLitening.Dll is now thread-safe. You can now have multiple threads accessing your SQLite database in both local and remote mode. This will allow you to have multiple connections per client to the server, one for each thread. This can greatly increase response time for situations where you can take advantage of multiple threads. A new example program (ExampleD.Bas) is included using multiple theads. This new feature also allows database Procs to use SQLitening.Dll rather than have to call SQlite direct (makes coding Procs much easier). There is a new Proc (SQLiteningProcB.Bas) included using this new feature. 2. Added slCopyDatebase. This new function will allow you to make copies/backups of a database. Normally you make copies/backups by locking the database and then copying the database by using an external tool like FileCopy. This method works well but has the following shortcomings: -- Any database clients wishing to write to the database file while a backup is being created must wait until the shared lock is relinquished. -- It cannot be used to copy data to or from :memory: nor Temp databases. -- If a power failure or operating system failure occurs while copying the resulting copied database may be corrupt. The slCopyDatabase function uses the new SQLite OnlineBackup API which was created to address these shortcomings. slCopyDatabase allows the contents of one database to be copied into another database, overwriting the original contents of the target database. The copy operation may be done incrementally, in which case the source database does not need to be locked for the duration of the copy, only for the brief periods of time when it is actually being read from. This allows other database users to continue uninterrupted while the copy is made. See http://www.sqlite.org/backup.html for more info about the OnlineBackup API. 3. Added slSelStr. This new function returns selected rows as a delimited text string. Each field and record is delimited by a single character. The default field delimiter is $BS while the default record delimiter is $VT. These defaults can be changed. This is easier to use than slSelAry and can be very handy for small amounts of returning data. Is excellent for testing the occurrence of a condition and processing Pragma returns. Lets say you wanted to know if there were any rows that had an 'X' in column F1 of table T1: if len(slSelStr(Select 1 from T1 where F1='X' Limit 1) then ' if the above is true then you have at least 1 with 'X' end if This will display the page size -- ? slSelStr("Pragma page_size") 4. Updated Example C to include examples of the new slCopyDatabase and slSelStr. Added a new Example D to demo multi-threading. 5. Enhanced slExeBind to be able to Insert or Update multiple records. In prior releases slExeBind was only needed to work with blobs or text values that contained nulls. Now it can be used to greatly improve Insert or Update speed. My tests show it can improve them by as much as 45%. Check out ExampleB.Bas for a sample that will Insert 50,000 records two different ways in either local or remote mode. One way is to use slExeBind while the other slower way is to us slExe and stack the SQL insert statements. Also note in this example the use of an array and the Join$ command to greatly improve concatenation speed. 6. Added ModChars i,I,D,Z to slBuildBindDat which will allow for the building of dats to bind Integer, Integer64, Double, and Null values. 7. Added the ability in slGetFile to pass a get position and a get length. Using a position and length is useful when you only want to get a portion of the file. This also may be needed for very large files even when you want to get the whole file. 8. Added the ability in slPutFile to pass a put position. Using a position is useful when you only want to put a portion of the file. This also may be needed for very large files even when you want to put the whole file. Removed the create file in remote mode restriction. Added D and T ModChars which allow you to delete a file and control when the file is truncated. 9. Changed slSel so that when no set is passed (defaults to zero) or the passed set number is zero it will first close that set. This will prevent error -14 (%SQLitening_InvalidSetNumber).10. Changed slOpen to automatically enable SQLite foreign key support. SQLite disables this feature by default (for backwards compatibility), so must be enabled separately for each database connection. Also added the f ModChar to allow you to not enable foreign key support.11. Added the C ModChar to slSel. This will first close the passed set number. This will prevent error -14 (%SQLitening_InvalidSetNumber) but should be used with caution.12. Changed slConnect to check that the client and server versions are same. If not then %SQLitening_AccessDenied is returned.13. Changed slConnect so that when a second connect request is made it will just return if the current connection is still active. Before it would just return without checking if still active.14. Added a new request to slGetStatus. Request 4 will check if the current remote connection is active and return either "Yes" or "No" This is like a 'ping' which will cause a trip to serve.15. Add a quiet mode parm to SQLiteningServerAdmin so it can be run from a script without any user messages to answer. Pass the Q command line parm proceeded with a / or - (OS standard). The Q must be followed by a numerical value for the action requested as follows: 1 = Install 2 = Start --- will first Install if required 3 = Install and Start 4 = Stop 8 = Uninstall --- will first Stop if required 12 = Stop and Uninstall 16 = Reload Config This program will return the following codes if in Quiet mode: 0 = All OK 1 = Can't perform request, service in wrong status 2 = Request failed. 9 = Service in unknown or invalid status16. Fixed bug in slSel when running in local mode and using the "B" ModChar.17. Added a new sample proc called SQLiteningProcsB.Bas. This proc uses SQLitening for all processsing.18. Update SQLite3.Dll to the version 18.104.22.168 dated March 30 2010.