我的代码如下:
procedure TFrmShow.selectClick(Sender: TObject);
begin
ibquery1.close;
if not (ibquery1.prepared) then ibquery1.prepare;
ibquery1.First;//!!!!error:cannot perform the operation on a closed dataset
if not ibquery1.eof then
begin
ibquery1.ParamByName('inusercode').AsString:=usercode.text;
ibquery1.ParamByName('inmetercode').AsString:=metercode.text;
ibquery1.ParamByName('inreaddate').AsString:=MEdate.text;
ibquery1.ParamByName('inreadtype').Asinteger:=strtoint(leftstr(metertype.text,1));
ibquery1.Open;
end;
ibquery1.UnPrepare;
ShowMessage(inttostr(ibquery1.RecordCount));
end;
属性设置如下
datesource1.dataset:ibquery1
dbgrid.datasource:datesource1
我整了老半天都没搞定。说什么是关闭的数据集,我该怎么办?求助个大虾!!
procedure TFrmShow.selectClick(Sender: TObject);
begin
ibquery1.close;
if not (ibquery1.prepared) then ibquery1.prepare;
ibquery1.First;//!!!!error:cannot perform the operation on a closed dataset
if not ibquery1.eof then
begin
ibquery1.ParamByName('inusercode').AsString:=usercode.text;
ibquery1.ParamByName('inmetercode').AsString:=metercode.text;
ibquery1.ParamByName('inreaddate').AsString:=MEdate.text;
ibquery1.ParamByName('inreadtype').Asinteger:=strtoint(leftstr(metertype.text,1));
ibquery1.Open;
end;
ibquery1.UnPrepare;
ShowMessage(inttostr(ibquery1.RecordCount));
end;
属性设置如下
datesource1.dataset:ibquery1
dbgrid.datasource:datesource1
我整了老半天都没搞定。说什么是关闭的数据集,我该怎么办?求助个大虾!!
解决方案 »
- 如何判断某一个应用程序实例目前开启的文件,并使其MainForm提到萤幕的最上方﹖
- datamodule.notify_datachange我怎么找不到有此属性
- 菜鳥求救﹕有用過OraTabel跟wwDBGrid控件的請進
- @@@@@@@@@@@@@@@@@@@@@@@@@@@如何得到硬盘的图标并放在listview中?@@@@@@@@@@@@@@@@@@@@@@@@@@@
- 安装ORACLE的磁盘是否不能做文件碎片整理???
- 那里有master/detail的例子下載﹐高分
- 请教如何将ADOQUERY1的记录集复制给另一个adoquery2?
- 有成熟系统,有意合作:[email protected]
- 请Delphi 5.0 的打包程序那里可以下栽
- 请教 delphi 的时间算法
- delphi中ole调用excel的问题,急!!!
- 我想請問一下: 有沒有哪個函數可以知道一個文本文檔一共有多少行?? 多謝了!!!
if not ibquery1.eof then
--------------------------------这些都是没用的
先打开ibquery1
ibquery1.First;//!!!!error:cannot perform the operation on a closed dataset
if not ibquery1.eof then
前提是你的ibquery1中已经有了合法的sql语句
在OPEN之后再FIRST
procedure TFrmShow.selectClick(Sender: TObject);
begin
ibquery1.close;
If ibquery1.Active=False then ibquery1.open;
If not (ibquery1.state in [dsEdit]) then ibquery1.Edit;
ibquery1.sql.Clear;
ibquery1.sql.add('这里你的sql语句');
ibquery1.open;
if not ibquery1.isEmpty then
begin
ibquery1.ParamByName('inusercode').AsString:=usercode.text;
ibquery1.ParamByName('inmetercode').AsString:=metercode.text;
ibquery1.ParamByName('inreaddate').AsString:=MEdate.text;
ibquery1.ParamByName('inreadtype').Asinteger:=strtoint(leftstr(metertype.text,1));
end;
ibquery1.post;
ShowMessage(inttostr(ibquery1.RecordCount));
end;
begin
ibquery1.close;
begin
ibquery1.ParamByName('inusercode').AsString:=usercode.text;
ibquery1.ParamByName('inmetercode').AsString:=metercode.text;
ibquery1.ParamByName('inreaddate').AsString:=MEdate.text;
ibquery1.ParamByName('inreadtype').Asinteger:=strtoint(leftstr(metertype.text,1));
ibquery1.Open;
end;
end;
先把基本的实现语名运行一下,然后再加上判断语句调试
前提是你的ibquery1中已经有了合法的sql语句