请问该如何刷新tquery(100分)

  • 主题发起人 主题发起人 jony1
  • 开始时间 开始时间
J

jony1

Unregistered / Unconfirmed
GUEST, unregistred user!
控件:tquery-tDataSource-tdbgrid 数据库类型:db
建立了其中一个字段为主键
var cc:string;
begin
cc:=query1.fieldbyname('文件名').asstring;
query1.close;
query1.sql.Clear;
query1.sql.Add('update film set aa="bb" where 文件名='+''''+cc+'''');
query1.ExecSQL;
query1.Refresh;
end;
刷新后出现'cannot perform this operation on a closed dataset'
请问该如何去刷新,能把刚修改过的资料重新显示出来。
jony1
 
在query1.ExecSQL;query1.Refresh;间增加一条打开数据集的指令:query1.open;
因为刷新指令是针对当前活动数据集的,你在第一句上关闭了数据集。
 
将query1.Refresh;去掉即可
 
最简单的且100%有效的方法:
1先更新数据
2。query1.close;
3.query3.open.
数据库中的数据和显示的数据都肯定被刷新过了的。
 
在query1.ExecSQL;query1.Refresh;间增加一条打开数据集的指令:query1.open;
还是有错,出现'error creating cursor handle'.去掉Refresh,数据不能刷新
jony

 
>> 去掉Refresh,数据不能刷新
不懂! 用 Close,Open 还不能刷新?
 
jony, 你应该用另外一个Query控件来做修改!!
var cc:string;
begin
cc:=query1.fieldbyname('文件名').asstring;
//设计时放入或程序中创建一个Query2
query2.sql.Clear;
query2.sql.Add('update film set aa="bb" where 文件名='+''''+cc+'''');
query2.ExecSQL;
query1.Close;
query1.Open;
end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
748
import
I
I
回复
0
查看
627
import
I
I
回复
0
查看
811
import
I
后退
顶部