Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

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

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

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

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

Или попробуйте DHSqlite http://www.thecommon.net/2.html из Датенхауса..

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

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

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

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

Размещенная ссылка на код 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 - и планируется более поздний выпуск с открытым исходным кодом под LGPL.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top