一个普通的数据库查询程序而已。在98、ME、2000下调试都通过,但在XP下,只能查一次,当点击“重新查找”的时候就报错,说“bof 或eof中有一个是真,或者当前的记录已被删除,无法进行操作"。勉强重新查找的话,就会提示数据集已经打开,不能操作。
查找按钮的相关代码如下:
ADOQuery1.close;
ADOQuery1.SQL.Clear;
sqlstr:='select * from data where year=';
sqlstr:=sqlstr+'''+Edit1.Text+''';
ADOQuery1.SQL.Add(sqlstr);
ADOQuery1.ExecSQL;
ADOQuery1.open;重新查找的相关代码如下:
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('SELECT * FROM data');
ExecSQL;
end;我用的是ado数据集。明明在重新查找的时候close了ADOQuery,也没有移动指针什么的,为什么有那样的报错呢?
查找按钮的相关代码如下:
ADOQuery1.close;
ADOQuery1.SQL.Clear;
sqlstr:='select * from data where year=';
sqlstr:=sqlstr+'''+Edit1.Text+''';
ADOQuery1.SQL.Add(sqlstr);
ADOQuery1.ExecSQL;
ADOQuery1.open;重新查找的相关代码如下:
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('SELECT * FROM data');
ExecSQL;
end;我用的是ado数据集。明明在重新查找的时候close了ADOQuery,也没有移动指针什么的,为什么有那样的报错呢?
ADOQuery1.SQL.Clear;
sqlstr:='select * from data where year=';
sqlstr:=sqlstr+'''+Edit1.Text+''';
ADOQuery1.SQL.Add(sqlstr);
//-----------------------
//ADOQuery1.ExecSQL;//去掉一个试试
ADOQuery1.open;
//-----------------------
//这里为什么要执行两次SQL???
//-----------------------