Search code examples
delphidbase

open a dBase table


I have to copy some information from an old dBase database using ADOConnection and AdoTable. I am able to open all tables but I get this exception

Data provider or other service returned an E_FAIL status

while trying to open a big table 1.01 GB (1 093 588 624 bytes). I note that the performance is very bad. this is the connection string

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

Solution

  • I believe that the default setting for CursorLocation with TADOConnection is clUseClient. With that setting, the entire data set is read into memory by the client. That would explain the slowness and may explain the error.

    Try changing it to clUseServer.

    ADOConn.CursorLocation := clUseServer;
    

    Or you can change it in the object inspector properties.