打开一个 dBase 表

Naj*_*jem 2 delphi dbase

我必须使用 ADOConnection 和 AdoTable 从旧的 dBase 数据库中复制一些信息。我可以打开所有表,但出现此异常

数据提供者或其他服务返回 E_FAIL 状态

在尝试打开一个 1.01 GB(1 093 588 624 字节)的大表时。我注意到性能非常糟糕。这是连接字符串

  ConnectionString:=Format('Provider=Microsoft.JET.OLEDB.4.0;Data Source=%s;Extended Properties=dBase IV;',[path])
Run Code Online (Sandbox Code Playgroud)

Mar*_*ins 5

我相信CursorLocationwith TADOConnection的默认设置是clUseClient. 通过该设置,客户端将整个数据集读入内存。这将解释缓慢并可能解释错误。

尝试将其更改为clUseServer.

ADOConn.CursorLocation := clUseServer;
Run Code Online (Sandbox Code Playgroud)

或者您可以在对象检查器属性中更改它。