怎么将一个ADOQuery的数据复制到另一个ADOQuery?

nightmaple 2010-02-23 02:12:33
我想将窗体A中的ADOQuery的结构及数据复制给窗体B中的ADOQuery

窗体B中代码:
procedure TFHelpConfig.FormInit(ADOConn:TAdoConnection;Const ADOQuery:TADOQuery;UserId,ModuleId:integer);
begin
self.ADOQuery1.Connection:=ADOConn;
self.ADOQuery1.Clone(ADOQuery);

self.UserId:=UserId;
self.ModuleId:=ModuleId;
end;

窗体A中调用代码:
procedure TFHelp.EditConfig1Click(Sender: TObject);
begin
with TFHelpConfig.Create(nil) do
try
FormInit(self.ADOConn,self.ADOQueryConfig,UserId,ModuleId);
ShowModal;
finally
Free;
end;
end;

当我在窗体B中修改ADOQuery1的数据时,窗体A的ADOQueryConfig中的数据也跟着变了,我需要的是2个ADOQuery分别独立互不影响。请问要怎么做?
...全文
800 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgbd 2010-02-23
  • 打赏
  • 举报
回复
不会保存到数据库中的。
nightmaple 2010-02-23
  • 打赏
  • 举报
回复
还有一个问题
将ADOQuery设成ltBatchOptimistic,修改ADOQuery数据后,没有调用Post,直接关闭ADOQuery,这样修改的内容会Post到数据库吗?
nightmaple 2010-02-23
  • 打赏
  • 举报
回复
如果不用保存配置我在关闭窗体B时,用ADOQuery1.CancelUpdates撤销所有修改,这样子应该就没问题了。

我忘了ADOQuery不能像ClientADOQuery缓存数据,一定要有数据源来支持。

“保留一个数据集连接真实的数据库,然后保存为一个文件,adoquery是可以保存为文件的,然后其他的adoquery去loadfromfile这个文件”这样子能行吗?如果改了新的adoquery那么数据文件也会改,然后原adoquery也跟着变吧?
nightmaple 2010-02-23
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
不管你弄得是多少个数据集,你连接的都是同一个数据库,那改动其中一个,必然另一个也跟着变,没出错算你幸运

如果你非要这样做,只能保留一个数据集连接真实的数据库,然后保存为一个文件,adoquery是可以保存为文件的,然后其他的adoquery去loadfromfile这个文件


我将XML文件(配置信息)存数据库的一字段中,在窗体A中从数据读出来恢复到A的ADOQuery中(整个ADOQuery为配置信息)。然后将A的ADOQuery传给窗体B的ADOQuery。B的ADOQuery不改数据库,只是在窗体B的DBGrid中显示父窗体的ADOQuery的数据,并且作临时的选择设置。如果要保存B窗体设置,我会向数据库插入一条新记录。
bdmh 2010-02-23
  • 打赏
  • 举报
回复
不管你弄得是多少个数据集,你连接的都是同一个数据库,那改动其中一个,必然另一个也跟着变,没出错算你幸运

如果你非要这样做,只能保留一个数据集连接真实的数据库,然后保存为一个文件,adoquery是可以保存为文件的,然后其他的adoquery去loadfromfile这个文件
nightmaple 2010-02-23
  • 打赏
  • 举报
回复
我不想一行一行复制,有没有什么办法可以一次复制过来,原ADOQuery和新ADOQuery互不影响。

5,387

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧