12

現在、再配布可能なアプリに MSAccess mdb ファイルを使用しています。

少し前に、私のソリューションの代替として SQLite について知りましたが、それらが提供するバイナリは、VB6 でオブジェクトとして使用する可能性を提供しません。(または、少なくとも私はその方法を理解できませんでした)。

誰かがリンクを持っているか、VB6 から SQLite DB に接続すること、および ADO を使用する場合との違いについて少し書くことができますか?

4

7 に答える 7

8

私はしばらくの間、SQLite を使用して VB6 アプリに取り組んでおり、いくつかの接続方法を試しました。

ですから、要約して、私の意見では、最良の答えを示しましょう。

Ben Hoffstein、gobansaor、および David W. Fenton によって言及された方法は優れていますが、sqlite への独自のインターフェイスに依存しています。

CherryCity の OLEDB プロバイダーは、標準インターフェイスを使用しているため優れていますが、インストールごとのロイヤリティ システムがあり、非常に高価です。また、彼らのウェブサイトには、製品にロイヤルティがあることは前もって記載されていません. 実際に開発用の製品を購入し、それを配布したいときにのみわかります。

最後に、http://www.ch-werner.de/sqliteodbc/ には、ビールとスピーチの両方で完全に無料の SQLite ODBC ドライバーがあります。それはかなりうまく機能し、私はまだ大きな問題に遭遇していません. 私が遭遇した唯一の小さな問題は、1 回の呼び出しで複数のステートメントを許可しないことです。そのため、分離する必要があります。さらに、このドライバーは DSN を使用しないアプローチを可能にするため、すべてが非常に簡単になります。

したがって、ODBC ドライバーは本当に最適なソリューションです。

于 2009-03-30T22:49:05.707 に答える
5

または、DatenhausのDHSqlitehttp://www.thecommon.net/2.htmlを試してください

「...ADOの高速な代替手段として開発され、超高速のSQLiteエンジンをカプセル化しています...」

「...2つのDLLを使用するだけで、ADO/JET環境全体を完全に置き換えることができます。依存関係はなくなります。

..無料です(ただし、オープンソースではありません)。

于 2008-09-22T11:56:05.670 に答える
4

コード例へのリンクは次のとおりです。

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

于 2008-09-21T16:18:24.797 に答える
3

このトピック/質問に関する参考までに...

投稿された FreeVB コード リンクは、SQLite 2.x のみをサポートする AGS_SQLite.dll を使用します (機能が制限されています)。

提供されている DHSqlite リンクは SQLite 3.x もサポートしており、VB6 (Classic) を使用して SQLite 開発を行っている人にはより良い推奨事項です。この SQLite エンジンのコード例はhttp://www.thecommon.net/3 にあります。 html

それが役立つことを願っています!

于 2009-08-23T22:28:35.760 に答える
0

sqlite.dllVBDeclare SubまたはDeclare Function構文を使用して、SQLite 関数に直接アクセスできるようです。

これを行う例を次に示します: 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)

(その例が実際に製品コードの準備ができているかどうかはわかりません)。

于 2018-01-23T13:39:55.347 に答える