【发布时间】:2018-08-14 07:49:17
【问题描述】:
我曾经使用 Delphi 2007,我能够连接到许多不同的数据库管理。使用 Vadim V. Lopushanskiy 的开源 dbExpress 驱动程序的系统。现在我在 10.2 Tokyo 工作。我很高兴在阅读此thread 后可以再次连接到 Access。和 SQL Server,但我不使用它;-)
我遇到了问题,尤其是。当尝试以我习惯的灵活方式连接到 Oracle 和 Sqlite3 时。让我专注于连接到 Sqlite 时遇到的问题。我使用由 Christian Werner 开发的 SQLite ODBC 驱动程序。没有成功,即我得到这个错误:'不支持的信息选项 131'。不幸的是,关于如何使用新 Data.DBXOdbc 单元的功能的文档很少。希望 Embarcadero 对此有所作为。
在我的代码下面,来自一个带有 TSQLConnection 的 DataModule 单元,该单元分配给称为 FDatabase 的 TCustomConnection。这是连接Sqlite的代码:
with (FDatabase As TSQLConnection) do
begin
VendorLib := 'sqlite3odbc.dll';
Params.Values['TRIMCHAR'] := 'True'; // 'Trim Char'
end;
if aUseDsn then
ConnStr := 'DSN=' + aDbxProviderStr + ';'
else
begin
// Work the database qualifier into a connection string.
// Assume that aDbxProviderStr contains that database qualifier.
Connstr := 'DRIVER=SQLite3 ODBC Driver;Database=';
Connstr := Connstr + aDbxProviderStr + ';';
end;
if (aUsername <> '') and (aPassword <> '') then
begin
ConnStr := ConnStr + 'UID=' + aUsername + ';PWD=' + aPassword + ';';
end;
with (FDatabase As TSQLConnection) do
begin
Params.Values[DATABASENAME_KEY] := '?';
Params.Values[CONNECTION_STRING] := ConnStr + 'coEnableUnicode=0;';
end;
(FDatabase As TSQLConnection).Open;
我希望有人可以向我们展示如何克服这个问题。
【问题讨论】:
标签: sqlite connection odbc dbexpress delphi-10.2-tokyo