Usando SQLite com VB6
Pergunta
Atualmente, estou usando um arquivo mdb MSAccess para um aplicativo redistribuível.
Um tempo atrás eu descobri sobre SQLite, como uma alternativa para a minha solução, mas os binários que eles fornecem não oferecem a possiblilty de usá-los como um objeto no VB6. (Ou pelo menos eu não conseguia entender como).
Alguém tem um link, ou poderia escrever um pouco sobre a ligação a um SQLite DB de VB6, e suas diferenças com o uso de ADO?
Solução
Aqui está um link com exemplos de código:
Outras dicas
Eu estive trabalhando em um aplicativo VB6 com SQLite por um tempo e eu tentei um par de métodos de conexão.
Então, deixe-me resumir e dar, o que na minha opinião é, a melhor resposta.
Métodos mencionado por Ben Hoffstein, gobansaor e David W. Fenton são bons, mas eles contam com interfaces proprietárias para sqlite.
provedor OLEDB por CherryCity é bom porque é usando uma interface padrão, mas eles têm um sistema de royalties por instalação, que faz com que seja muito, muito caro. E seu site não indicar antecipadamente que o produto tem royalties. Você só descobre quando você realmente comprou o produto para o desenvolvimento e quer distribuí-lo.
Finalmente, há o absolutamente livre como em cerveja e discurso, driver ODBC SQLite em http: // www.ch-werner.de/sqliteodbc/. Ele funciona muito bem e eu não encontrei todas as questões importantes ainda. A única questão menor que eu encontrei é que ele não vai permitir que várias instruções em uma chamada, de modo que você só tem que separá-lo. Além disso, o driver permite a abordagem sem DSN, o que torna tudo muito mais fácil.
Assim, imo, o driver ODBC é realmente a melhor solução.
Ou tente DHSqlite http://www.thecommon.net/2.html de Datenhaus ..
" ... desenvolvido como uma alternativa rápida a ADO, encapsular o SQLite-motor super-rápido ... "
"... Com apenas duas DLLs obter uma substituição completa para o ADO inteira / JET-ambiente - nenhuma dependência-hazzle mais ..."
.. é gratuito (mas não opensource).
Apenas um FYI sobre este tema / pergunta ...
O link código FreeVB postou usos AGS_SQLite.dll que suporta apenas 2.x SQLite (funcionalidade limitada)
O link DHSqlite fornecidos suportes SQLite 3.x bem e é a melhor recomendação para qualquer um que faz o desenvolvimento SQLite com VB6 (Classic) ... Há exemplos de código para este motor SQLite em http://www.thecommon.net/3.html
Espero que ajude!
O COM Wrappers / Visual Basic DLLs seção no meio da esta página listas alguns utilizáveis ??solução com VB6.
E sim, eu ainda estou preso em desenvolvimento com VB6: (
Parece ser possível aceder directamente as funções SQLite em sqlite.dll
usando Declare Sub
VB ou sintaxe Declare Function
.
Um exemplo que faz isso é mostrado aqui: https://github.com/RobbiNespu/VB6-Sqlite3
extrato chave:
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)
(Eu não sei se esse exemplo é realmente pronto para o código de produção).
O vbRichClient-Quadro (atualmente na versão 5), é um conjunto disponível de 3 DLLs: vbRichClient5.dll vb_cairo_sqlite.dll DirectCOM.dll O vbRichClient5.dll é escrito em VB6 -. E depois Abrir-Sourcing sob LGPL está prevista ??p>
Seu principal propósito é, de dissociar de tantos MS-COM-dependências quanto possível, com o objetivo em mente, para atingir um estado de auto-hospedagem mais fácil, mais tarde, quando o acompanha (VB6-compatível) Compiler vai decolar. E se mais fácil de alcançar plataforma de portabilidade (para o compilador e o novo Runtime base-Class) é o objetivo, então temos de começar a trabalhar com um tal desacoplamento-quadro já no planejamento da fase transition- e.
Assim, as ofertas lib um moderno GUI-quadro que funciona Vector-based, usando o cairo-biblioteca sob a capa (sem GDI + GDI / ou DirectX aqui ... e também nada do MS-CommonControls.dll é tocado).
A outra parte maior, que é muitas vezes necessário e usado dentro "típicas VB-Aplicações" é fácil DB-Access (Geralmente feito através de uma Desktop-DB-File acompanha em * .mdb-Format). Então, o que a estrutura também oferece, é uma substituição fácil de usar (e quase compatível com o ADO) para o MS-JET-Engine. Isto é, o que faz -se a outra maior parte do acompanhamento por satélite de binário:. vb_cairo_sqlite.dll ... o SQLite-motor