使用BDE和Delphi访问dBase文件的好方法是什么?

Tho*_*nes 1 delphi dbase bde

首先,我必须声明,对于Delphi来说,我是一个完整的新手,虽然我在学校做了一些Turbo Pascal编程,大约十四年前......

我有一个商业Delphi程序,它使用dBase数据库和BDE来访问它们.我基本上需要将用C#编写的另一个应用程序连接到这个数据库,以便能够执行诸如select,insert,update和delete之类的SQL操作.

不幸的是,针对dBase使用OLEDB导致索引损坏,只有原生BDE应用程序似乎能够安全地访问数据.

一般的想法是创建一个简单的Delphi控制台应用程序,它可以从标准输入(Read/ReadLn)读取SQL语句,并将CSV数据输出到标准输出(WriteLn).

我该怎么做呢?

我已成功获得简单的TTable访问权限,使用以下代码:

tbl := TTable.Create(nil);

tbl.DatabaseName := 'Exceline';
tbl.TableName := 'KUNDE.DBF';
tbl.Active := True;

WriteLn(tbl.RecordCount);

tbl.Active := False;
Run Code Online (Sandbox Code Playgroud)

有没有办法实现相同但通过执行直接SQL语句?

klu*_*udg 8

你可以使用TQuery组件做同样的事情:

qry := TQuery.Create(nil);

qry.DatabaseName := 'Exceline';
qry.SQL.Add('SELECT COUNT(*) AS CNT FROM KUNDE');
qry.Active := True;

WriteLn(qry.FieldByName('CNT').AsString);

qry.Active := False;
Run Code Online (Sandbox Code Playgroud)