2008-09-21 19 views
9

Ich verwende derzeit eine MSAccess MDB-Datei für eine weitervertreibbare App.Verwenden von SQLITE mit VB6

Vor einiger Zeit habe ich von SQLite als Alternative zu meiner Lösung erfahren, aber die von ihnen bereitgestellten Binärdateien bieten nicht die Möglichkeit, sie als Objekt in VB6 zu verwenden. (Oder zumindest konnte ich es nicht herausfinden, wie).

Hat jemand einen Link, oder könnte etwas über die Verbindung zu einer SQLite DB von VB6 schreiben, und seine Unterschiede zur Verwendung von ADO? Hier

Antwort

5

Oder versuchen DHSqlite http://www.thecommon.net/2.html von Datenhaus ..

“... entwickelt als schnelle Alternative zu ADO, Einkapseln des super- schnelle SQLite-Engine ... "

" ... Mit nur zwei DLLs erhalten Sie einen kompletten Ersatz für die gesamte ADO/JET-Umgebung - keine Abhängigkeit mehr ... "

..es ist kostenlos (aber nicht opensource).

7

Ich arbeite seit einiger Zeit an einer VB6-App mit SQLite und habe ein paar Verbindungsmethoden ausprobiert.

Also lassen Sie mich zusammenfassen und geben, was meiner Meinung nach die beste Antwort ist.

Die von Ben Hoffstein, gobansaor und David W. Fenton erwähnten Methoden sind gut, aber sie basieren auf proprietären Schnittstellen zu SQLite.

OLEDB-Anbieter von CherryCity ist gut, weil es eine Standard-Schnittstelle verwendet, aber sie haben eine pro Installation Royalty-System, das es wirklich, wirklich teuer macht. Und ihre Website sagt nicht voraus, dass das Produkt Lizenzgebühren hat. Sie erfahren erst, wann Sie das Produkt tatsächlich für die Entwicklung gekauft haben und es verteilen möchten.

Endlich gibt es den absolut freien wie in Bier und Rede, SQLite ODBC Treiber bei http://www.ch-werner.de/sqliteodbc/. Es funktioniert ziemlich gut und ich habe noch keine größeren Probleme festgestellt. Das einzige kleinere Problem, das ich festgestellt habe, ist, dass es nicht mehrere Anweisungen in einem Anruf erlaubt, also müssen Sie es nur trennen. Außerdem erlaubt der Treiber den DSN-losen Ansatz, der alles so viel einfacher macht.

Also, imo, der ODBC-Treiber ist wirklich die beste Lösung.

3

Nur ein FYI zu diesem Thema/Frage ...

Der FreeVB Code-Link gepostet verwendet AGS_SQLite.dll die nur SQLite 2.x (eingeschränkte Funktionalität)

Die DHSqlite Link unterstützt SQLite unterstützt bereitgestellt 3 .x auch und ist eine bessere Empfehlung für jeden, der SQLite Entwicklung mit VB6 (Classic) ... Es gibt Codebeispiele für diese SQLite-Engine unter http://www.thecommon.net/3.html

Hoffe, dass hilft!

0

Die COM Wrapper/Visual Basic DLLs Abschnitt in der Mitte von this page listet einige mit VB6 verwendbare Lösung auf.

Und ja, ich bin immer noch mit VB6 stecken Entwicklung :(

0

Es scheint möglich zu sein, direkt auf die SQLite-Funktionen in sqlite.dll zuzugreifen VB Declare Sub oder Declare Function Syntax.

Ein Beispiel, das dies tut https://github.com/RobbiNespu/VB6-Sqlite3

Key-Extrakt:

Public Declare Sub sqlite3_open Lib "sqlite.dll" (ByVal FileName As String, ByRef handle As Long) 
Public Declare Sub sqlite3_close Lib "sqlite.dll" (ByVal DB_Handle As Long) 
Public Declare Function sqlite3_last_insert_rowid Lib "sqlite.dll" (ByVal DB_Handle As Long) As Long 
Public Declare Function sqlite3_changes Lib "sqlite.dll" (ByVal DB_Handle As Long) As Long 
Public Declare Function sqlite_get_table Lib "sqlite.dll" (ByVal DB_Handle As Long, ByVal SQLString As String, ByRef ErrStr As String) As Variant() 
Public Declare Function sqlite_libversion Lib "sqlite.dll"() As String 
Public Declare Function number_of_rows_from_last_call Lib "sqlite.dll"() As Long 
... 
query = "SELECT * FROM users" 

row = sqlite_get_table(DBz, query, minfo) 
wird hier gezeigt

(Ich weiß nicht, ob dieses Beispiel wirklich für den Produktionscode bereit ist).