用的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也是一样!
解决方案 »
- speedbutton 点击的时候如何显示矩形虚线?
- 鲨鱼请教:关于局域网的客户端的UDP访问公网的服务器,为什么客户端的端口每次都不一样?
- 关于将RzDateTimeEdit的日期保存到数据库的问题。
- 这个问题还不解决,我就要失业了,请各位高手帮帮忙啊!!
- 请Delphi7的爱好者帮忙
- 调查:现在是用DELPHI 5的人多还是用DELPHI 6的人多?
- 请教如何计算两个日期差多少天的问题!在线等待!!!
- Accesss数据库的每个cell最多能容纳多少字节信息?
- 哪位好人帮一下,我忘了取当前键值的函数是什么了,请告诉我好吗
- 执行文件问题,不太难:
- 有一个问题需要大家帮忙:我有一个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;