Używanie SQLITE z VB6

Obecnie używam pliku MSAccess mdb dla aplikacji redystrybucyjnej.

Jakiś czas temu dowiedziałem się o SQLite, jako alternatywie dla mojego rozwiązania, ale dostarczane przez nich binaria nie oferują możliwości wykorzystania ich jako obiektu w VB6. (A przynajmniej nie mogłem tego rozgryźć).

Czy ktoś ma link, lub mógłby napisać trochę o podłączeniu do SQLite DB z VB6 i jego różnicach w używaniu ADO?

Author: Oli, 2008-09-21

6 answers

 4
Author: Ben Hoffstein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-21 16:18:24

Od jakiegoś czasu pracuję nad aplikacją VB6 z SQLite i wypróbowałem kilka metod łączenia.

Więc pozwól, że podsumuję i podam, co moim zdaniem jest najlepszą odpowiedzią.

Metody wymienione przez Ben Hoffstein, gobansaor i David W. Fenton są dobre, ale opierają się na zastrzeżonych interfejsach do sqlite.

OLEDB provider by CherryCity jest dobry, ponieważ używa standardowego interfejsu, ale mają system per installation, co sprawia, że naprawdę, naprawdę drogo. A ich strona internetowa nie stwierdza z góry, że produkt ma tantiemy. Dowiesz się tylko, kiedy faktycznie kupiłeś produkt do rozwoju i chcesz go rozpowszechniać.

Wreszcie jest absolutnie darmowy jak w beer i speech, sterownik SQLite ODBC na http://www.ch-werner.de/sqliteodbc /. Działa całkiem dobrze i nie spotkałem się jeszcze z żadnymi poważnymi problemami. Jedynym drobnym problemem, jaki napotkałem, jest to, że nie pozwala na wiele poleceń w jeden telefon, więc musisz go oddzielić. Ponadto kierowca pozwala na podejście bez DSN, co sprawia, że wszystko jest o wiele łatwiejsze.

Więc, imo, sterownik ODBC jest naprawdę najlepszym rozwiązaniem.

 7
Author: AngryHacker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-07 03:34:39

Lub spróbuj DHSqlite http://www.thecommon.net/2.html z Datenhaus..

"...opracowany jako szybka alternatywa do ADO, obudowa superszybkiego silnika SQLite..."

"...Z zaledwie dwoma bibliotekami DLL otrzymujesz kompletną wymianę całego środowiska ADO / JET - no dependency-hazzle już..."

.. jest darmowy (ale nie opensource).

 5
Author: gobansaor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 11:56:05

Tylko FYI na ten temat / pytanie ...

Dodany link do kodu FreeVB używa AGS_SQLite.dll, który obsługuje tylko SQLite 2.x (ograniczona funkcjonalność)

Podany link DHSqlite obsługuje SQLite 3.x również i jest lepszą rekomendacją dla każdego, kto zajmuje się rozwojem SQLite z VB6 (Classic) ... Istnieją przykłady kodu dla tego silnika SQLite na http://www.thecommon.net/3.html

Mam nadzieję, że to pomoże!

 3
Author: Robert French,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-23 22:28:35

Sekcja com Wrappers / biblioteki DLL Visual Basic na środku ta strona zawiera listę rozwiązań, które można wykorzystać z VB6.

I tak, wciąż utknąłem w rozwijaniu z VB6 : (

 0
Author: stenci,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-28 20:08:51

Wydaje się, że możliwy jest bezpośredni dostęp do funkcji SQLite w sqlite.dll za pomocą składni VB Declare Sub lub Declare Function.

Przykład, który to robi, pokazany jest tutaj: https://github.com/RobbiNespu/VB6-Sqlite3

Ekstrakt klucza:

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)

(Nie wiem, czy ten przykład jest naprawdę gotowy do kodu produkcyjnego).

 0
Author: DaveInCaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-23 13:39:55