It has been over 6 months since I last mentioned my in world database project that was largely awaiting the release of MONO into the wild.
For the past month I have been extensively testing the underlying primitives and am reasonably sure that I have squashed the bugs and am now working on code optimisation.
I have not yet decided how to release the underlying code, for public use or to open source it, but the reason for this post is to show the database primitives available to the user and to gauge the interest of others in using the system.
I have created a Document showing the available commands and 3 example applications that utilise them.
All three examples are in everyday use at 2 separate venues, as part of the beta testing. The document is far to large to reproduce here in the forum so I have posted it as a publicly available Goggle Document.
http://docs.google.com/Doc?id=d79kx35_26df2pbbd8
here are the introduction and conclusion portions of the above, if it captures your interest, then please read the full document and feel free to pass on any comments, observations or suggestions you may have.
Introduction:
VK-DBMS is a Multi-Table database management system written for and in LSL, it has no dependencies on external databases and is totally embedded in the users script. The embedded code is called VK-ISAM-VM and will compile to LSL with 11920 bytes free and to MONO with 46324 Bytes free, the latter is the obvious choice for data storage but it still may prove useful as a applications environment in the former.
An understanding of the underlying ISAM-VM virtual machine is not necessary in order to use the dbFunctions described here. Example Programs written with VK-DBMS Follow this reference guide to show all the commands in practical use.
Conclusion:
This is a simple, yet powerful set of Database Primitives that allow us to store and retrieve data in a logical fashion. It has no dependence on an external database, so users neither have to code and maintain a web site for storage, nor depend on a third party to provide a service, all data functions are under the users control. It's uses, like the rest of LSL, are limited only by the imagination of the programmer and the memory constraints of LSL itself. In short, any application that uses lists may benefit from using VK-DBMS, the more lists an application would normally use, the greater the benefit, as all the list management code becomes redundant and is replaced by a common set of functions. It also eases the development of applications, as the designer can concentrate on the logic and structure of the data, without having to overly concern themselves with the format and and location of the data.
Summary of commands in alphabetical order:
string dbCreate ( string TableName, list ColumnNames );
integer dbDelete ( integer Row# );
integer dbDrop ( string TableName );
integer dbExists ( list Condition );
float dbFn ( string Function, string ColumnName );
list dbGet ( integer Row# );
integer dbInsert ( list Values );
integer dbOpen ( string TableName );
integer dbPut ( list Values );
void dbSort( integer Direction );
integer dbTest ( list condition );
integer dbTruncate ( string TableName );
Helpers:
integer dbCol( string ColumnName );
string dbError - Description of last Error encountered
integer dbIndex - Table Index pointer
list dbRow - user variable
If any application developers would be interested in Beta Testing the system please contact me personally.



does case-insensitive matches for certain character sets and collations.