关于select语句的简单问题

SilverEagle 2006-05-15 02:58:30
发现如果select语句没有找到任何记录,那么若要执行下个语句,比如close时候,就会出错!
代码如下:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, ADODB, StdCtrls;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure ADOQAfterOpen(DataSet: TDataSet);
private
{ Private declarations }
public
sqlstring:string;
procedure ExeSQL(SQLString:string);{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ExeSQL(SQLString:string);
var sqlstr:string;
begin
sqlstr:=SQLString;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(sqlstr);
try
Open;
except
ShowMessage('Open database failed');
end;
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
Index:string;
begin
for i:=1 to 99 do
begin
showmessage(inttostr(i));
Index:=inttostr(i);
SqlString:='SELECT * FROM list WHERE indexsss='+''''+Index+'''';
Exesql(sqlstring);
end;
end;

end.

当i=1时,程序正常,i=2时,执行到adoquery1.close就出错了!提示Either BOF or EOF is true, or the current record has been deleted.....
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SilverEagle 2006-05-16
  • 打赏
  • 举报
回复
找到原因了,是delphi编译器的错误,换delphi7编译后就正确了,谢谢两位!
zahahui 2006-05-15
  • 打赏
  • 举报
回复
加一个判断语句
if ADOQuery1.recordcount<> then

执行下面的语句
纯冰糖 2006-05-15
  • 打赏
  • 举报
回复
procedure TForm1.ExeSQL(SQLString:string);
var sqlstr:string;
begin
sqlstr:=SQLString;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(sqlstr);
try
Open;
except
Close; //触发异常,你要关闭数据表的;
ShowMessage('Open database failed');
end;
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
Index:string;
begin
for i:=1 to 99 do
begin
//showmessage(inttostr(i)); 去掉这句代码;
Index:=inttostr(i);
SqlString:='SELECT * FROM list WHERE indexsss='+''''+Index+'''';
Exesql(sqlstring);
end;
end;

end.

我没有delphi,你自己再写写看对不?
SilverEagle 2006-05-15
  • 打赏
  • 举报
回复
注明:表是空表,不存在记录

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧