我正在尝试将数据从tblDeelnemers
of复制dbDeelnemers
到文本文件中Deelnemers.txt
该表包含 4 列,即:ID、Naam、van、kontaknommer。我的表单上有一个TADOQuery以及一个dbGrid。我正在使用Microsoft Access和Delphi 7。
我已经在寻找可能的方法,但我能得到的唯一帮助是 C#。
我想稍后在单击按钮时调用此文本文件。保存数据的格式无关紧要,我只需要能够将其加载回数据集即可。我这样做是因为在此“导入”之后,表中的数据被删除以从头开始
我尝试了以下方法,但完全错误:
var
sDeelnemers : string;//string to copy data in before adding to textfile
Begin // sIDkies is global string
frmData.qryVGKompetisieDB.Active := false;
frmData.qryVGKompetisieDB.SQL.Text := 'copy ID, Naam, Van, Kontaknommer from tblDeelnemers into sDeelnemers WHERE ID = "'+sIDkies+'"; // copying data into string
frmData.qryVGKompetisieDB.ExecSQL;
frmData.qryVGKompetisieDB.SQL.Text := 'Select * from tblDeelnemers'; // to show table on dgGrid like originally
frmData.qryVGKompetisieDB.Active := true;
end; // then assigning textfile and copying sDeelnemers(string) into textfile
感谢@No'am Newman,代码现在如下:
procedure TfrmData.Button1Click(Sender: TObject);
var
f: tstrings;
q: TADOQuery;
begin
redInfo.Visible := false;
dbgInfo.Visible := true;
qryVGKompetisieDB.Active := false;
qryVGKompetisieDB.SQL.Text := 'select id, naam, van, Kontaknommer from tblDeelnemers';
qryVGKompetisieDB.ExecSQL;
qryVGKompetisieDB.Active := true;
f:= tstringlist.create;
with q do
begin
open; //Error occurs here
while not eof do
begin
f.add (fieldbyname ('id').asstring + ',' +
fieldbyname ('naam').asstring + ',' +
fieldbyname ('Van').asstring + ',' +
fieldbyname ('Kontaknommer').asstring);
next
end;
close
end;
f.savetofile ('Deelnemers.txt');
f.free
end;
但是现在打开 TADOQuery 时出现以下错误(如代码中所示):
项目 PAT_p.exe 引发异常类 EAccessViolation,并带有消息“在模块“PAT_p.exe”中地址 004A990C 的访问冲突。读取地址 8BD88CCB'。进程停止。使用 Step 或 Run 继续。