2008-09-21 9 views
9

J'utilise actuellement un fichier mdb MSAccess pour une application redistribuable. Il ya quelque temps, j'ai découvert SQLite, comme une alternative à ma solution, mais les binaires qu'ils fournissent n'offrent pas la possibilité de les utiliser comme un objet dans VB6. (Ou au moins je ne pouvais pas comprendre comment).Utilisation de SQLITE avec VB6

Est-ce que quelqu'un a un lien, ou pourrait écrire un peu sur la connexion à une base de données SQLite à partir de VB6, et ses différences avec l'utilisation d'ADO?

Répondre

5

Ou essayez DHSqlite http://www.thecommon.net/2.html de Datenhaus ..

» ... développé comme un moyen rapide alternatif à ADO, l'encapsulation du super- SQLite-engine rapide ... "

" ... Avec seulement deux Dll, vous obtenez un remplacement complet à l'ensemble de l'environnement ADO/JET - plus de dépendances ... "

.. c'est gratuit (mais pas opensource).

7

J'ai travaillé sur une application VB6 avec SQLite pendant un moment et j'ai essayé quelques méthodes de connexion. Alors permettez-moi de résumer et de donner, ce qui, à mon avis, est la meilleure réponse. Les méthodes mentionnées par Ben Hoffstein, Gobansaor et David W. Fenton sont bonnes, mais elles s'appuient sur des interfaces propriétaires de sqlite.

Le fournisseur OLEDB de CherryCity est bon car il utilise une interface standard, mais il a un système de royalties par installation, ce qui le rend vraiment très cher. Et leur site Web ne précise pas que le produit a des redevances. Vous ne savez que lorsque vous avez réellement acheté le produit pour le développement et que vous voulez le distribuer.

Enfin, il y a le conducteur de SQLite ODBC de la bière et de la parole, absolument gratuit, à http://www.ch-werner.de/sqliteodbc/. Cela fonctionne plutôt bien et je n'ai pas encore rencontré de problèmes majeurs. Le seul problème mineur que j'ai rencontré est qu'il ne permettra pas plusieurs instructions dans un appel, de sorte que vous avez juste à le séparer. En outre, le pilote permet l'approche sans DSN, ce qui rend tout beaucoup plus facile. Donc, imo, le pilote ODBC est vraiment la meilleure solution.

3

Juste un FYI sur ce sujet/question ...

Le lien de code FreeVB affiché utilise AGS_SQLite.dll qui prend en charge uniquement (fonctionnalité limitée) 2.x SQLite

Le lien DHSqlite fourni soutient SQLite 3 .x ainsi et est une meilleure recommandation pour quiconque fait le développement SQLite avec VB6 (classique) ... Il existe des exemples de code pour ce moteur SQLite à http://www.thecommon.net/3.html

Espérons que ça aide!

0

La section COM Wrappers/DLL Visual Basic au milieu de this page répertorie une solution utilisable avec VB6.

Et oui, je suis toujours bloqué avec le développement VB6 :(

0

Il semble possible d'accéder directement aux fonctions de SQLite dans sqlite.dll en utilisant VB Declare Sub ou Declare Function syntaxe.

Un exemple qui fait cela est montré ici: https://github.com/RobbiNespu/VB6-Sqlite3

extrait clé:

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) 

(Je ne sais pas si cet exemple est vraiment prêt pour le code de production).

Questions connexes