一段保存DBGRID中记录到文本文件的程序,当DBGRID记录为空时希望返回错误信息,却不知道RecordCount判断错在哪,每当DBGRID记录为空时出错。
procedure TForm2.SaveS1Click(Sender: TObject);
//if DBGRID1.SelectedRows<>0 then
//DBGRID1.DataSource.Dataset
var
f1:TextFile;
str:string;
i:integer;
begin
if Dbgrid1.Datasource.DataSet.Recordcount<>0 then
begin
with dbgrid1.datasource.dataset do
disablecontrols;
begin
if SaveDialog1.Execute then { Display Open dialog box }
begin
AssignFile(f1, SaveDialog1.FileName);
rewrite(f1);
dbgrid1.datasource.dataset.first;
while not dbgrid1.datasource.dataset.Eof do
begin
str:='';
for i:=0 to dbgrid1.datasource.dataset.fieldcount-1 do
str:=str+dbgrid1.datasource.dataset.fields[i].asstring+' ';
dbgrid1.datasource.dataset.next;
writeln(f1,str);
end;
end;
dbgrid1.datasource.dataset.enablecontrols;
closefile(f1);
end;
end
else
showmessage('No records selected');
//else
//SaveDialog1.Close;
end;
procedure TForm2.SaveS1Click(Sender: TObject);
//if DBGRID1.SelectedRows<>0 then
//DBGRID1.DataSource.Dataset
var
f1:TextFile;
str:string;
i:integer;
begin
if Dbgrid1.Datasource.DataSet.Recordcount<>0 then
begin
with dbgrid1.datasource.dataset do
disablecontrols;
begin
if SaveDialog1.Execute then { Display Open dialog box }
begin
AssignFile(f1, SaveDialog1.FileName);
rewrite(f1);
dbgrid1.datasource.dataset.first;
while not dbgrid1.datasource.dataset.Eof do
begin
str:='';
for i:=0 to dbgrid1.datasource.dataset.fieldcount-1 do
str:=str+dbgrid1.datasource.dataset.fields[i].asstring+' ';
dbgrid1.datasource.dataset.next;
writeln(f1,str);
end;
end;
dbgrid1.datasource.dataset.enablecontrols;
closefile(f1);
end;
end
else
showmessage('No records selected');
//else
//SaveDialog1.Close;
end;
,是不是RecordCount判断条件有问题?