Results 1 to 9 of 9

Thread: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

  1. #1

    Thread Starter
    PowerPoster wqweto's Avatar
    Join Date
    May 2011
    Location
    Sofia, Bulgaria
    Posts
    6,200

    [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    TC6SQLite is another "em dash repo" namely Claude's reimplementation of the SQLite subsystem of RC6 as a single Ax-DLL.

    Note that TB's x64 port is not ready i.e. still uses winsqlite3.dll and does not embed sqlite in final Ax-DLL.

    cheers,
    </wqw>

  2. #2
    Addicted Member saturnian's Avatar
    Join Date
    Dec 2017
    Location
    France
    Posts
    145

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    Well done, wqweto!
    Your RC6-compatible tools are a real breakthrough for ensuring the survival of our codes! Thank you for these initiatives.

  3. #3

    Thread Starter
    PowerPoster wqweto's Avatar
    Join Date
    May 2011
    Location
    Sofia, Bulgaria
    Posts
    6,200

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    Btw, I've been using RC6 sqlite classes since it was DatenHouse dhRichClient3 and before acquainting Olaf in these forums.

    The replacement so far works ok in a project of mine though not extensively tested as the project does not touch very many methods/properties.

    cheers,
    </wqw>

  4. #4
    PowerPoster Arnoutdv's Avatar
    Join Date
    Oct 2013
    Posts
    6,753

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    My usage of dhRichClient3 and vbRichClient5 is mostly: cSortedDictionary and the SQLite Connection and cRecordSet
    Building a new library with my own cSortedDictionary alternative, based on cHashD on the forum
    And wrote with CoPilot a wrapper for the sqlite3.dll with just the methods/classes I need.

  5. #5
    Lively Member
    Join Date
    Feb 2013
    Location
    Brasil
    Posts
    67

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    There are 2 points in RC5/6 that I find, so far, to be unique... which are...
    Encryption mechanisms and using custom Functions and Collations, which are easily accessed by a class in VB6.

    Is there any intention to implement either of these items?


    Edit:
    I just saw on Git that this has been implemented:
    User-defined functions, aggregates, and collations via IFunction / IAggregateFunctionICollation

    Incredible!
    Last edited by ThiagoPSanches; Jul 16th, 2026 at 12:59 PM.

  6. #6
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    7,669

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    Code:
    '--- CDecl / C-variadic exports (8) - intentionally NOT declared so the
    '--- module stays pure StdCall for VB6 (x86) and tB (x86/x64)
    Purely for vb6... tB supports cdecl and variadic functions, both ... and va_list.

  7. #7
    Member SaschaT's Avatar
    Join Date
    Mar 2017
    Location
    Berlin, Germany
    Posts
    34

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    Hi wqweto,

    Great addition!
    I recently did a similar project but related the typelib to the DAO/MSAccess structure instead of the one in RC6. I do not embed sqlite3 into the AX-DLL but use a method SetDLL() as I find it cumbersome to always compile a stdcall obj for every new version of sqlite. (Using Tricks CDECL fix). Furthermore there are some sqlite3 variants e.g. in GDAL, that implement additional functions (e.g GIS functions) that can be used in the SQL statements.
    Anyway: TC6 has the same problem I came across when opening recordsets (prepare statement): SQLite has only the step forward cursor and nothing like step_previous, step_move, step_last. So I did the same as you with the materialize() function: Load all columns and all rows into a variant array until ret <> SQLITE_ROW. This is applicable for small databases, but not for those with 100thds of rows, especially when BLOBs are contained. (Example: The poi files here (=sqlite) : https://www.openandromaps.org/downloads/europa; some have a size of 800Mb.)
    The solution I am actually working on is to alter the SQL statement for the recordset in the Move-methods and in case it exceeds the variant array size prepare a new statement refering to appropriate rowids and with limits set; said, I filter the recordset according the cursor.
    Not easy in some cases. Just a hint.
    Last edited by SaschaT; Today at 03:09 AM.

  8. #8
    Addicted Member
    Join Date
    Oct 2014
    Posts
    135

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    Hello! WQWETO. Feedback on the TC6 test results for you?
    Name:  A (1).jpg
Views: 22
Size:  23.7 KB
    Name:  A (2).jpg
Views: 22
Size:  25.0 KB
    Name:  A (3).jpg
Views: 22
Size:  23.0 KB
    Name:  A (4).jpg
Views: 22
Size:  20.7 KB
    Name:  A (5).jpg
Views: 22
Size:  26.7 KB

  9. #9
    Addicted Member
    Join Date
    Oct 2014
    Posts
    135

    Re: [VB6/TB] TC6 (TwinClient 6) — SQLite for VB6 and TwinBasic

    Hello! WQWETO. Feedback on the TC6 test results for you
    Name:  A (6).jpg
Views: 22
Size:  27.5 KB
    Name:  A (7).jpg
Views: 23
Size:  33.3 KB
    Name:  A (8).jpg
Views: 22
Size:  30.1 KB
    Name:  A (9).jpg
Views: 23
Size:  28.4 KB
    Name:  A (10).jpg
Views: 23
Size:  31.6 KB

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width