No announcement yet.

SQLitening Database System 1.11 (January 18, 2009)

  • Filter
  • Time
  • Show
Clear All
new posts

  • SQLitening Database System 1.11 (January 18, 2009)

    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.
    Paul Squires
    FireFly Visual Designer (for PowerBASIC Windows 10+)
    Version 3 now available.

  • #2
    Zen Analyzer v1.0 Freeware

    ...thanks to the guys of PowerBasic, Planet Squires and SQLite.

    I've tried my first application with PB9, SQLitening v1.11 (local mode) and SQLite3 and am very impressed:

    Zen Analyzer v1.0

    It's easy to implement, only few code necessary and it's ligthening fast!

    In my example I read 2,500 data rows of a sequential price file (O,H,L,C price bars), analyse this concerning 100 patterns and write the results (ca. 6,000 database records) in a temporary SQLite table. Then I use 20 SQL queries to do the reporting stuff.

    All this using the wonderful ":memory:" option of SQLite/SQLitening.

    And how fast is it on my old machine (more than 5 years old Pentium with only 512 MB Rambus RAM)?

    1 or 2 seconds ...
    ... not too bad!

    Last edited by Volker Butzlaff; 24 Jan 2009, 04:49 AM. (Trading system development and simulation tools)


    • #3
      Example A does not work at all under Vista 64-Bit, and Example C crashes if trying to run remotely. The server was installed properly ("as admin"), and is running.

      Has anyone else tested this under Vista-64? I am now just looking at this database, so I really don't know much about it. I just unzipped it and began by installing the server, and trying the examples.

      *added: here's a screenshot of what is happening.

      Last edited by Scott Slater; 29 Jan 2009, 09:32 AM. Reason: add screen capture
      Scott Slater
      Summit Computer Networks, Inc.


      • #4
        My Fault. I forgot to recompile and test the three examples before I released Version 1.11. They have been updated and sent to Paul Squires. I have also attached a zip of the updated examples here. They now work OK with Vista 32 can't speak for 64 bit.
        Attached Files


        • #5
          Thanks Fred, they now work fine with Vista 64-bit as well
          Scott Slater
          Summit Computer Networks, Inc.