用的AdoDataSet
procedure TForm1.Button1Click(Sender: TObject);
begin
with AdoDataSet1 do begin
if Active=True then Active:=False; // 以后会在这里出错
CommandText:='select * from table where 条件';
Open;
end;
end;
先声明一下,select 语句里面没问题。
where 条件是根据窗体上几个Edit里的内容动态生成,(不会有错)
第一次执行,如果有符合条件的记录时,上面执行正常.
第二次:如果故意将一些条件组合设得超出范围,此时将查询不到记录.
第三次:执行时会在 if Active=True then Active:=False; 一行上出错:大概是 不能在已关闭的DataSet上执行此操作.('Cannot perform this operation on a closed dataset')。这一行又不能去掉,不然dataset打开的时候,又不能对commandtext赋值。
据我推测,在第二次执行后,虽然没有记录,但dataset是Close的,但Active=True。
以为是ADO的BUG,换了ado2.6,2.7还是同样问题!用adoquery也是一样!
procedure TForm1.Button1Click(Sender: TObject);
begin
with AdoDataSet1 do begin
if Active=True then Active:=False; // 以后会在这里出错
CommandText:='select * from table where 条件';
Open;
end;
end;
先声明一下,select 语句里面没问题。
where 条件是根据窗体上几个Edit里的内容动态生成,(不会有错)
第一次执行,如果有符合条件的记录时,上面执行正常.
第二次:如果故意将一些条件组合设得超出范围,此时将查询不到记录.
第三次:执行时会在 if Active=True then Active:=False; 一行上出错:大概是 不能在已关闭的DataSet上执行此操作.('Cannot perform this operation on a closed dataset')。这一行又不能去掉,不然dataset打开的时候,又不能对commandtext赋值。
据我推测,在第二次执行后,虽然没有记录,但dataset是Close的,但Active=True。
以为是ADO的BUG,换了ado2.6,2.7还是同样问题!用adoquery也是一样!
解决方案 »
- Webbrowser中根据链接或文字找点击坐标?
- Delphi6下 编写的确良ISAPI程序如何分批取数据
- 严重的树型(TreeView)问题
- 如何在视频播放画面上显示文字?即叠加.
- ModelMaker for Delphi 2006 有能用的么?
- 请问这句是什么意思?select * from sales..table1 ?
- 请教一个API函数或者Delphi自定义的对话框函数
- 我遇到拦路虎,帮帮我拉!!!!!!!其实比较简单
- 哪儿有含有源代码的LMD for Delphi 6下载?急需!要有源代码的
- 如何使floating为False的Dock窗体不能被关闭。谢谢。
- 有一个问题需要大家帮忙:我有一个java开发版的东西,能不能用在Delphi中。
- 请教各位Delphi高手,现在用Delphi做什么程序最多,最热?是数据库还是什么?
isEmpty也返回False !
Active:=False; // 以后会在这里出错
CommandText:='select * from table where 条件';
active:=true;
end;
先关了再Open嘛。
是D5的补丁不是系统ADO升级
没有问题。
:)
begin
with AdoDataSet1 do begin
close;
CommandText:='select * from table where 条件';
//if Active=True then Active:=False; 以后会在这里出错 或者
if Active=false then Active:=true;
Open;
end;
end;
ADODataSet1.Commandtext:='';
ADODataSet1.CommandText:='select * from table where 条件';
ADODataSet1.Open;