Pregunta

Actualmente estoy usando un archivo mdb de MSAccess para una aplicación redistribuible.

Hace un tiempo conocí SQLite, como alternativa a mi solución, pero los binarios que proporcionan no ofrecen la posibilidad de usarlos como objeto en VB6.(O al menos no pude entender cómo).

¿Alguien tiene un enlace o podría escribir un poco sobre cómo conectarse a una base de datos SQLite desde VB6 y sus diferencias con el uso de ADO?

¿Fue útil?

Solución

Aquí hay un enlace con ejemplos de código:

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

Otros consejos

He estado trabajando en una aplicación VB6 con SQLite por un tiempo y probé un par de métodos para conectarme.

Así que permítanme resumir y dar la que, en mi opinión, es la mejor respuesta.

Métodos mencionados por Ben Hoffstein, gobansaor y David W.Los Fenton son buenos, pero dependen de interfaces propietarias para sqlite.

El proveedor OLEDB de CherryCity es bueno porque utiliza una interfaz estándar, pero tiene un sistema de regalías por instalación, lo que lo hace muy, muy caro.Y su sitio web no indica por adelantado que el producto tenga regalías.Sólo se entera cuando realmente compró el producto para su desarrollo y desea distribuirlo.

Finalmente, está el controlador ODBC SQLite, absolutamente gratuito, tanto en cerveza como en voz, en http://www.ch-werner.de/sqliteodbc/ .Funciona bastante bien y todavía no he encontrado ningún problema importante.El único problema menor que he encontrado es que no permite varias declaraciones en una llamada, por lo que sólo hay que separarlas.Además, el controlador permite el enfoque sin DSN, lo que hace que todo sea mucho más fácil.

Entonces, en mi opinión, el controlador ODBC es realmente la mejor solución.

O prueba DHSqlite http://www.thecommon.net/2.html de Datenhaus..

"... desarrollado como una alternativa rápida al ADO, encapsulando el motor sqlite-sqlite súper rápido ..."

"...Con sólo dos Dlls obtienes un reemplazo completo para todo el entorno ADO/JET - ya no hay problemas de dependencia..."

..es gratis (pero no de código abierto).

Sólo una información sobre este tema/pregunta...

El enlace del código FreeVB publicado usa AGS_SQLite.dll que solo admite SQLite 2.x (funcionalidad limitada)

El enlace DHSqlite proporcionado también es compatible con SQLite 3.x y es una mejor recomendación para cualquiera que desarrolle SQLite con VB6 (Classic)...Hay ejemplos de código para este motor SQLite en http://www.thecommon.net/3.html

¡Espero que ayude!

El Envoltorios COM/DLL de Visual Basic sección a mitad de esta página enumera alguna solución utilizable con VB6.

Y sí, todavía estoy atrapado desarrollando con VB6 :(

Parece posible acceder directamente a las funciones SQLite en sqlite.dll usando VB Declare Sub o Declare Function sintaxis.

Aquí se muestra un ejemplo que hace esto:https://github.com/RobbiNespu/VB6-Sqlite3

Extracto clave:

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)

(No sé si ese ejemplo realmente está listo para código de producción).

vbRichClient-Framework (actualmente en la versión 5) es un conjunto de 3 Dll disponible de forma gratuita:vBrichclient5.dll vb_cairo_sqlite.dll directcom.dll El VBrichClient5.Dll se escribe en VB6, y se planifica una obtención abierta posterior bajo LGPL.

Su propósito principal es, desacoplar de la mayor cantidad posible de dependencias de MS-com, con el objetivo en mente, para lograr un estado de autohospedación más fácil más adelante, cuando el compilador acompañante (compatible con VB6) despegue.Y si es más fácil lograr la portabilidad de la plataforma (para el compilador y el nuevo tiempo de ejecución basado en la clase) es el objetivo, entonces necesitamos comenzar a trabajar con un marco de desacoplamiento ya en la fase de transición y planificación.

Por lo tanto, el Lib ofrece un modernowork Gui-Frame que funciona basado en vectores, utilizando la biblioteca El Cairo debajo del capó (sin GDI/GDI+ o DirectX aquí ...y tampoco se toca nada del MS-CommonControls.dll).

La otra parte más grande, que a menudo se necesita y se usa dentro de las "aplicaciones VB típicas" es fácil DB-Access (generalmente realizado sobre un archivo de escritorio-DB de escritorio en *.mdb-format).Entonces, lo que también ofrece el marco también es un reemplazo fácil de usar (y casi compatible con ADO) para el motor MS-Jet.Esto es, lo que constituye la otra parte más grande del binario satélite acompañante:vb_cairo_sqlite.dll ...el motor SQLite.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top