5.8.2.2 在 Borland 应用程序中使用连接器/ODBC

对于所有使用 Borland 数据库引擎 (BDE) 的 Borland 应用程序,请按照以下步骤提高兼容性:

  • 更新到 BDE 3.2 或更新版本。

  • Don't optimize column widths 在 DSN 中 启用该选项。

  • Return matching rows在 DSN 中 启用该选项。

5.8.2.2.1 在 Borland Builder 4 中使用连接器/ODBC

当您开始查询时,您可以使用 Active属性或 Open方法。

Active属性首先自动发出SELECT * FROM ... 查询。这可能会影响大型表的性能。

5.8.2.2.2 在 Delphi 中使用连接器/ODBC

此外,这里还有一些可能有用的 Delphi 代码,它们为连接器/ODBC 设置了一个 ODBC 条目和一个 BDE 条目。BDE 条目需要一个 BDE 别名编辑器,该编辑器在您附近的 Delphi Super Page 上免费提供。(为此感谢 Bryan Brunton ):

fReg:= TRegistry.Create;
fReg.OpenKey('\Software\ODBC\ODBC.INI\DocumentsFab', True);
fReg.WriteString('Database', 'Documents');
fReg.WriteString('Description', ' ');
fReg.WriteString('Driver', 'C:\WINNT\System32\myodbc.dll');
fReg.WriteString('Flag', '1');
fReg.WriteString('Password', '');
fReg.WriteString('Port', ' ');
fReg.WriteString('Server', 'xmark');
fReg.WriteString('User', 'winuser');
fReg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources', True);
fReg.WriteString('DocumentsFab', 'MySQL');
fReg.CloseKey;
fReg.Free;
Memo1.Lines.Add('DATABASE NAME=');
Memo1.Lines.Add('USER NAME=');
Memo1.Lines.Add('ODBC DSN=DocumentsFab');
Memo1.Lines.Add('OPEN MODE=READ/WRITE');
Memo1.Lines.Add('BATCH COUNT=200');
Memo1.Lines.Add('LANGDRIVER=');
Memo1.Lines.Add('MAX ROWS=-1');
Memo1.Lines.Add('SCHEMA CACHE DIR=');
Memo1.Lines.Add('SCHEMA CACHE SIZE=8');
Memo1.Lines.Add('SCHEMA CACHE TIME=-1');
Memo1.Lines.Add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT');
Memo1.Lines.Add('SQLQRYMODE=');
Memo1.Lines.Add('ENABLE SCHEMA CACHE=FALSE');
Memo1.Lines.Add('ENABLE BCD=FALSE');
Memo1.Lines.Add('ROWSET SIZE=20');
Memo1.Lines.Add('BLOBS TO CACHE=64');
Memo1.Lines.Add('BLOB SIZE=32');
AliasEditor.Add('DocumentsFab','MySQL',Memo1.Lines);
5.8.2.2.3 在 C++ Builder 中使用连接器/ODBC

使用 BDE 3.0 测试。唯一已知的问题是,当表架构更改时,查询字段不会更新。但是,BDE 似乎无法识别主键,只能识别名为 的索引PRIMARY,尽管这一直不是问题。