Question

J'utilise actuellement un fichier MSAccess mdb pour une application redistribuable.

Il y a quelque temps, j’ai découvert SQLite comme alternative à ma solution, mais les fichiers binaires qu’ils fournissent ne permettent pas de les utiliser en tant qu’objet dans VB6. (Ou du moins je ne pouvais pas comprendre comment.)

Quelqu'un a-t-il un lien ou pourrait-il écrire un peu sur la connexion à une base de données SQLite à partir de VB6 et sur ses différences avec l'utilisation de ADO?

Était-ce utile?

La solution

Voici un lien avec des exemples de code:

http://www.freevbcode.com/ShowCode.asp?ID=6893

Autres conseils

Je travaille depuis un certain temps sur une application VB6 avec SQLite et j'ai essayé plusieurs méthodes de connexion.

Alors laissez-moi résumer et donner, quelle est à mon avis la meilleure réponse.

Les méthodes mentionnées par Ben Hoffstein, gobansaor et David W. Fenton sont bonnes, mais reposent sur des interfaces propriétaires pour sqlite.

Le fournisseur OLEDB de CherryCity est bon, car il utilise une interface standard, mais il possède un système de redevances par installation, ce qui le rend vraiment très coûteux. Et leur site Web n'indique pas d'emblée que le produit comporte des redevances. Vous ne savez que le moment où vous avez acheté le produit pour le développement et que vous souhaitez le distribuer.

Enfin, il existe le pilote SQLite ODBC absolument gratuit, tant dans la bière que dans la parole, à l'adresse http: //. www.ch-werner.de/sqliteodbc/ . Cela fonctionne plutôt bien et je n’ai encore rencontré aucun problème majeur. Le seul problème mineur que j'ai rencontré est qu'il ne permet pas plusieurs déclarations en un seul appel, vous devez donc simplement le séparer. De plus, le pilote permet une approche sans DSN, ce qui simplifie grandement les choses.

Le pilote ODBC est donc vraiment la meilleure solution.

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

& ...; développé comme une alternative rapide à ADO, encapsulant le moteur SQLite ultrarapide ... "

"... Avec seulement deux Dll, vous obtenez un remplacement complet de tout l'environnement ADO / JET - plus aucun problème de dépendance ..."

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

Juste un renseignement sur ce sujet / cette question ...

Le lien de code FreeVB publié utilise AGS_SQLite.dll qui ne prend en charge que SQLite 2.x (fonctionnalités limitées)

Le lien DHSqlite fourni prend également en charge SQLite 3.x et constitue une meilleure recommandation pour ceux qui développent SQLite avec VB6 (Classic) ... Il existe des exemples de code pour ce moteur SQLite à http://www.thecommon.net/3.html

J'espère que ça aide!

La section DLL COM Wrappers / Visual Basic au milieu de cette page répertorie des solutions utilisables avec VB6.

Et oui, je suis toujours bloqué à développer avec VB6: (

Il semble possible d’accéder directement aux fonctions SQLite dans sqlite.dll à l’aide de VB Declare Sub ou de la syntaxe Declare Function .

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

Extrait de 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).

vbRichClient-Framework (actuellement à la version 5) est un ensemble gratuit de 3 Dll: vbRichClient5.dll vb_cairo_sqlite.dll DirectCOM.dll VbRichClient5.dll est écrit en VB6 - et un Open-Sourcing ultérieur sous LGPL est prévu.

Son objectif principal est de dissocier autant que possible les dépendances MS-COM, dans le but recherché, pour parvenir plus facilement à un état d’auto-hébergement, lorsque le compilateur (compatible VB6) qui s’accompagne s’envolera. Et si l'objectif est d'atteindre plus facilement la portabilité de la plate-forme (pour le compilateur et le nouveau runtime basé sur les classes), nous devons ensuite commencer à travailler avec un tel cadre de découplage dès la phase de transition et de planification.

Ainsi, la lib propose un GUI-Framework moderne qui fonctionne à base de vecteur, en utilisant la cairo-library sous le capot (pas de GDI / GDI + ni DirectX ici ... et rien du fichier MS-CommonControls.dll n’a été touché).

L’autre partie la plus importante, qui est souvent nécessaire et utilisée dans le cadre des "applications VB typiques". est facile d'accès DB (généralement effectué sur un fichier Desktop-DB associé au format * .mdb-Format). Alors qu'est-ce que le cadre offre aussi, est un remplacement facile à utiliser (et presque compatible ADO) pour le moteur MS-JET. C'est ce qui fait l’autre partie plus importante du binaire satellite associé: vb_cairo_sqlite.dll ... le moteur SQLite.

http://www.vbrichclient.com/#/en/Downloads.htm

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top