2008-09-21 36 views
9

Tôi hiện đang sử dụng tệp mdb MSAccess cho ứng dụng có thể phân phối lại.Sử dụng SQLITE với VB6

Một lúc trước, tôi đã tìm hiểu về SQLite, như một giải pháp thay thế cho giải pháp của tôi, nhưng các tệp nhị phân mà chúng cung cấp không cung cấp khả năng sử dụng chúng làm đối tượng trong VB6. (Hoặc ít nhất tôi không thể tìm ra cách).

Có ai có liên kết hay có thể viết một chút về kết nối với DB SQLite từ VB6 và sự khác biệt của nó với việc sử dụng ADO không?

Trả lời

5

Hoặc thử DHSqlite http://www.thecommon.net/2.html từ Datenhaus ..

" ... phát triển như là một thay thế nhanh để ADO, đóng gói các siêu động cơ SQLite nhanh ... "

" ... Chỉ với hai Dll, bạn có thể thay thế hoàn toàn cho toàn bộ môi trường ADO/JET - không còn phụ thuộc-hazzle nữa ... "

..nó miễn phí (nhưng không phải mã nguồn mở).

7

Tôi đã làm việc trên một ứng dụng VB6 với SQLite trong một thời gian và tôi đã thử một vài phương pháp kết nối.

Vì vậy, hãy để tôi tóm tắt và đưa ra, ý kiến ​​của tôi là câu trả lời hay nhất.

Phương pháp được đề cập bởi Ben Hoffstein, gobansaor và David W. Fenton là tốt, nhưng chúng dựa trên giao diện độc quyền cho sqlite.

Nhà cung cấp OLEDB của CherryCity là tốt bởi vì nó sử dụng giao diện chuẩn, nhưng chúng có hệ thống nhuận bút cài đặt, điều này khiến cho nó thực sự đắt tiền. Và trang web của họ không tuyên bố trước rằng sản phẩm có tiền bản quyền. Bạn chỉ tìm ra khi bạn thực sự mua sản phẩm để phát triển và muốn phân phối nó.

Cuối cùng là hoàn toàn miễn phí như trong cả bia và lời nói, trình điều khiển ODBC SQLite tại http://www.ch-werner.de/sqliteodbc/. Nó hoạt động khá tốt và tôi chưa gặp phải bất kỳ vấn đề lớn nào. Vấn đề nhỏ duy nhất tôi gặp phải là nó sẽ không cho phép nhiều câu lệnh trong một cuộc gọi, vì vậy bạn chỉ cần tách nó ra. Ngoài ra, trình điều khiển cho phép phương pháp tiếp cận DSN-ít hơn, giúp mọi thứ trở nên dễ dàng hơn nhiều.

Vì vậy, imo, trình điều khiển ODBC thực sự là giải pháp tốt nhất.

3

Chỉ cần một FYI về chủ đề này/câu hỏi ...

Mã liên kết FreeVB posted sử dụng AGS_SQLite.dll mà chỉ hỗ trợ SQLite 2.x (chức năng giới hạn)

Liên kết DHSqlite cung cấp hỗ trợ SQLite 3 .x là tốt và là một khuyến nghị tốt hơn cho bất cứ ai làm phát triển SQLite với VB6 (Classic) ... Có các ví dụ mã cho động cơ SQLite này tại http://www.thecommon.net/3.html

Hy vọng điều đó sẽ hữu ích!

0

Trình đóng gói COM/Visual Basic DLLs phần ở giữa this page liệt kê một số giải pháp có thể sử dụng với VB6.

Và vâng, tôi vẫn bị mắc kẹt đang phát triển với VB6 :(

0

Nó dường như là có thể truy cập trực tiếp các chức năng SQLite trong sqlite.dll sử dụng VB Declare Sub hoặc Declare Function cú pháp.

Một ví dụ mà thực hiện điều này được hiển thị ở đây: https://github.com/RobbiNespu/VB6-Sqlite3

chính chiết xuất:

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) 

(Tôi không biết ví dụ đó có thực sự sẵn sàng cho mã sản xuất) hay không.

Các vấn đề liên quan