Использование SQLITE с VB6 - PullRequest
       57

Использование SQLITE с VB6

11 голосов
/ 21 сентября 2008

В настоящее время я использую файл MSAccess mdb для распространяемого приложения.

Некоторое время назад я узнал о SQLite, как об альтернативе моему решению, но предоставляемые ими двоичные файлы не дают возможности использовать их в качестве объекта в VB6. (Или, по крайней мере, я не мог понять, как).

Кто-нибудь имеет ссылку или может написать немного о подключении к базе данных SQLite из VB6 и ее отличиях от использования ADO?

Ответы [ 7 ]

8 голосов
/ 31 марта 2009

Я некоторое время работал над приложением VB6 с SQLite и попробовал несколько способов подключения.

Итак, позвольте мне обобщить и дать, как мне кажется, лучший ответ.

Методы, упомянутые Беном Хоффштейном, Гобансаором и Дэвидом В. Фентоном, хороши, но они полагаются на проприетарные интерфейсы для sqlite.

Поставщик OLEDB от CherryCity хорош, потому что он использует стандартный интерфейс, но у них есть система роялти за установку, что делает его действительно очень дорогим. И их веб-сайт не заявляет заранее, что продукт имеет лицензионные платежи. Вы узнаете только, когда вы действительно купили продукт для разработки и хотите его распространить.

Наконец, есть абсолютно бесплатный, как для пива, так и для речи, драйвер SQLite ODBC по адресу http://www.ch -werner.de / sqliteodbc / . Это работает довольно хорошо, и я пока не сталкивался с какими-либо серьезными проблемами. Единственная незначительная проблема, с которой я столкнулся, заключается в том, что она не позволяет использовать несколько операторов за один вызов, поэтому вам просто нужно разделить их. Кроме того, драйвер позволяет использовать подход без DSN, что делает все намного проще.

Итак, imo, драйвер ODBC - действительно лучшее решение.

5 голосов
/ 22 сентября 2008

Или попробуйте DHSqlite http://www.thecommon.net/2.html от Datenhaus ..

"... разработан как быстрая альтернатива в ADO, инкапсулируя сверхбыстрый движок SQLite ... "

"... Имея только две библиотеки Dll, вы получаете полную замену всей среде ADO / JET - больше не возникает проблем с зависимостями ..."

.. это бесплатно (но не с открытым исходным кодом).

4 голосов
/ 21 сентября 2008

Вот ссылка с примерами кода:

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

3 голосов
/ 24 августа 2009

Просто к вашему сведению по этой теме / вопросу ...

Опубликованная ссылка на код FreeVB использует AGS_SQLite.dll, которая поддерживает только SQLite 2.x (ограниченная функциональность)

Предоставленная ссылка DHSqlite также поддерживает SQLite 3.x и является лучшей рекомендацией для всех, кто занимается разработкой SQLite с использованием VB6 (Classic) ... Примеры кода для этого механизма SQLite приведены на http://www.thecommon.net/3.html

Надеюсь, это поможет!

0 голосов
/ 06 ноября 2018

vbRichClient-Framework (в настоящее время в версии 5), это бесплатный доступный набор из 3 библиотек: vbRichClient5.dll vb_cairo_sqlite.dll DirectCOM.dll Файл vbRichClient5.dll написан на VB6 - и запланирован более поздний Open-Sourcing под LGPL.

Его основная цель состоит в том, чтобы отделить как можно больше MS-COM-зависимостей с учетом поставленной цели, проще достичь состояния самостоятельного хостинга позже, когда сопровождающий (VB6-совместимый) компилятор отключится. И если целью является достижение переносимости платформы (для компилятора и новой среды выполнения на основе классов), тогда мы должны начать работать с такой структурой развязки уже на этапе перехода и планирования.

Итак, lib предлагает современную GUI-Framework, которая работает на основе Vector, используя cairo-библиотеку под капот (здесь нет GDI / GDI + или DirectX ... а также ничего из MS-CommonControls.dll не затрагивается).

Другая большая часть, которая часто требуется и используется в «типичных VB-приложениях», - это простой DB-Access. (обычно выполняется поверх прилагаемого Desktop-DB-File в * .mdb-Format). Так что же предлагает структура, это простая в использовании (и почти ADO-совместимая) замена MS-JET-Engine. Это то, что делает другую большую часть сопровождающего двоичного спутника: vb_cairo_sqlite.dll ... движок SQLite.

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

0 голосов
/ 23 января 2018

Возможно получить прямой доступ к функциям SQLite в sqlite.dll с использованием синтаксиса VB Declare Sub или Declare Function.

Пример, который делает это, показан здесь: https://github.com/RobbiNespu/VB6-Sqlite3

Выписка ключа:

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)

(я не знаю, действительно ли этот пример готов для производственного кода).

0 голосов
/ 28 октября 2014

В разделе COM Wrappers / Visual Basic DLL в середине на этой странице перечислены некоторые решения, которые можно использовать с VB6.

И да, я все еще застрял в разработке с VB6: (

...