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

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

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

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

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
12
0
29 693
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

И да, я все еще придерживаюсь VB6 :(

Представляется возможным получить прямой доступ к функциям 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)

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

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

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

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

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

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

Другие вопросы по теме