换成AdoQuery
用QUERY需要手动更新各数据表;
用QUERY需要手动更新各数据表;
解决方案 »
- 为什么用idhttp登陆淘宝网站,都是返回首页,登陆不了?
- ADOTable中的数据如何定位?
- 显示文字
- 关于LMD控件的安装!
- 关于edit回车声音问题
- 将TABLE1的整条记录附给TABLE2,怎么写?
- 有没有得到文件属性的api函数
- 高手帮我,我毕业设计的题目是网络图象传输研究,这怎么做~~~
- 请问高手:读取数据表中的数字型字段,动态的来设置timer控件的interval属性,并用table1.moveby()自动显示"该"数据表中的数据条目,该怎么作?
- RegisterServiceProcess 函数在nt 4.0下运行居然说找不到程序入口?
- 怎样才能将dephi6的打印预览中的close改为中文“关闭”
- WinME真是一堆垃圾,我发布的软件(ADO)在Win9x,Win2K,WinXP下都能正常运行,唯独……
他查询后再去改query.requestlive :=TRUE后也没有用,不能修改DBGRID的东西的。
DBGRID.readonly := false;
还有,query.parames[].readonly := false;
要声明的是,在分组查询,统计查询时,返回的值是不能修改的!
要用UPDATEQUERY控件。
首先要把query的属性
requestlive:=true;
cachedupdaate=:true;
然后可以写:
with query do
begin
database.starttransaction;
try
applyupdates;
database.commit;
except
database.rollback;
raise;
end;
commitupdates;
end;
end;
如果用了 order by 或group by 等子句,也会只读.
使用UPDATEQUERY控件就可以达到多表修改的要求了,在论坛搜索一下这个问题就知道了,我以前也做过很多这样的程序。如果不使用UPDATEQUERY控件,只使用QUERY的话最多只能修改单表查询的数据。
query.requestlive :=TRUE 是改变只读属性,
query.CancelUpdate :=TRUE是将修改的数据放在缓存中以便确定修改后一次POST进数据库。
这个问题可以结束了。