Domanda

Attualmente sto usando un file mdb MSAccess per un'app ridistribuibile.

Qualche tempo fa ho scoperto SQLite, in alternativa alla mia soluzione, ma i binari che forniscono non offrono la possibilità di usarli come oggetto in VB6. (O almeno non riuscivo a capire come).

Qualcuno ha un link o potrebbe scrivere qualcosa sulla connessione a un DB SQLite da VB6 e le sue differenze con l'utilizzo di ADO?

È stato utile?

Soluzione

Ecco un link con esempi di codice:

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

Altri suggerimenti

Ho lavorato su un'app VB6 con SQLite per un po 'e ho provato un paio di metodi di connessione.

Quindi, vorrei riassumere e dare, qual è secondo me la risposta migliore.

I metodi citati da Ben Hoffstein, gobansaor e David W. Fenton sono buoni, ma si basano su interfacce proprietarie per sqlite.

Il provider OLEDB di CherryCity è buono perché utilizza un'interfaccia standard, ma ha un sistema di diritti d'autore per installazione, il che lo rende davvero molto costoso. E il loro sito Web non afferma in anticipo che il prodotto ha royalties. Lo scopri solo quando hai effettivamente acquistato il prodotto per lo sviluppo e vuoi distribuirlo.

Finalmente c'è il driver ODBC SQLite assolutamente gratuito, sia nella birra che nella parola, all'indirizzo http: // www.ch-werner.de/sqliteodbc/ . Funziona abbastanza bene e non ho ancora riscontrato problemi importanti. L'unico problema minore che ho riscontrato è che non consentirà più istruzioni in una chiamata, quindi devi solo separarlo. Inoltre, il driver consente l'approccio senza DSN, che rende tutto molto più semplice.

Quindi, imo, il driver ODBC è davvero la soluzione migliore.

Oppure prova DHSqlite http://www.thecommon.net/2.html da Datenhaus ..

" ... sviluppato come alternativa veloce ad ADO, incapsulando il motore SQLite superveloce ... "

" ... Con solo due Dll ottieni un sostituto completo per l'intero ambiente ADO / JET - nessun problema di dipendenza ... "

..è gratuito (ma non opensource).

Solo una FYI su questo argomento / domanda ...

Il collegamento al codice FreeVB pubblicato utilizza AGS_SQLite.dll che supporta solo SQLite 2.x (funzionalità limitata)

Il collegamento DHSqlite fornito supporta anche SQLite 3.x ed è una migliore raccomandazione per chiunque stia sviluppando SQLite con VB6 (Classic) ... Ci sono esempi di codice per questo motore SQLite in http://www.thecommon.net/3.html

Spero che ti aiuti!

La sezione wrapper COM / DLL di Visual Basic al centro di questa pagina elenca alcune soluzioni utilizzabili con VB6.

E sì, sono ancora bloccato nello sviluppo con VB6 :(

Sembra essere possibile accedere direttamente alle funzioni SQLite in sqlite.dll utilizzando la sintassi VB Declare Sub o Declare Function .

Un esempio che lo fa è mostrato qui: https://github.com/RobbiNespu/VB6-Sqlite3

Estratto chiave:

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)

(Non so se questo esempio è davvero pronto per il codice di produzione).

Il vbRichClient-Framework (attualmente alla versione 5), è un set gratuito disponibile di 3 Dll: vbRichClient5.dll vb_cairo_sqlite.dll DirectCOM.dll VbRichClient5.dll è scritto in VB6 e viene pianificato un open-sourcing successivo sotto LGPL.

Il suo scopo principale è quello di separare il maggior numero possibile di dipendenze MS-COM, tenendo presente l'obiettivo, per raggiungere più facilmente uno stato di self-hosting in seguito, quando il compilatore di accompagnamento (compatibile con VB6) decollerà. E se l'obiettivo della portabilità della piattaforma (per il compilatore e il nuovo runtime basato su classi) è più semplice, allora dobbiamo iniziare a lavorare con un tale quadro di disaccoppiamento già nella fase di transizione e pianificazione.

Quindi, la lib offre un moderno GUI-Framework che funziona basato su Vector, usando la libreria cairo sotto il hood (no GDI / GDI + o DirectX qui ... e anche nulla di MS-CommonControls.dll viene toccato).

L'altra parte più grande, che è spesso necessaria e utilizzata all'interno di "tipiche applicazioni VB" è un facile accesso al DB (di solito eseguito su un File Desktop-DB di accompagnamento in * .mdb-Format). Quindi cosa offre anche il framework, è un rimontaggio facile da usare (e quasi compatibile con ADO) per il motore MS-JET. Questo è ciò che rende nell'altra parte più grande del binario satellite associato: vb_cairo_sqlite.dll ... il motore SQLite.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top