巨难!!从来没遇到过的问题!求解!adoquery------顶者有分!不够再加

huluobowangmeng 2004-07-21 09:54:48
我有一表A(id,name)为主要表。另一表B(sn,id,power)为次要表。

分别用adoquery1,adoquery2连接。并分别显示在grideh1,grideh2中。
当在grideh1中选取一条纪录时。adoquery2在表B中查找B.id=A.id的纪录并显示在grideh2中。并可在grideh2中修改这些记录。
以上这些都可实现,最难的部分在于:

*重点*
adoquery2用的是ltBatchOptimistic模式。并且所有B表中的记录必须在点击一个Btn_save后才能全部更新保存。可是每次在grideh1中选取记录之后。还要求Grideh2中的内容更新。如果上一次的数据没有updatebatch的话。就不会被保存了。如果updatebatch也不行,因为要求必须在最后点按钮时才能全部保存!!!

小弟想了很久,试着用动态创建adoquery的方法解决。但是极不好控制,并且巨耗资源。


...全文
278 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
huluobowangmeng 2004-07-23
  • 打赏
  • 举报
回复
哈哈,终于解决了。用的windindance(风舞轻扬)的方法

ADOQuery2.SQL.Text := 'select * From t';
ADOQuery2.Open;

在每次选择时
ADOQuery2.Filter := 'id = ' + VarToStr(ADOQuery1['id']);
ADOQuery2.FIltered := true;

没问题的话就要结贴了
wychero 2004-07-22
  • 打赏
  • 举报
回复
顶吧。
宇哲1030 2004-07-22
  • 打赏
  • 举报
回复
filter 只会对ADO 的缓冲中的数据排序不会丢失数据吧
drift1981 2004-07-22
  • 打赏
  • 举报
回复
顶一下
jblcj 2004-07-22
  • 打赏
  • 举报
回复
帮顶
ltolll 2004-07-22
  • 打赏
  • 举报
回复
试没试过用事务来解决
youcheng1 2004-07-22
  • 打赏
  • 举报
回复
学习
lindaolong 2004-07-22
  • 打赏
  • 举报
回复
不是明细表的关系吗/
lindaolong 2004-07-22
  • 打赏
  • 举报
回复
up
windindance 2004-07-21
  • 打赏
  • 举报
回复
ADOQuery2.SQL.Text := 'select * From t';
ADOQuery2.Open;

ADOQuery1.AfterScroll:
ADOQuery2.Filter := 'id = ' + VarToStr(ADOQuery1['id']);
ADOQuery2.FIltered := true;
IFindit 2004-07-21
  • 打赏
  • 举报
回复
grideh2肯定不能通过查询数据库来显示,所以只能另僻溪径,ADOQuery2中取出所有表2中的bookid在adoquery1中出现的记录,这样grideh2来自ADOQuery2而不是数据库中
huluobowangmeng 2004-07-21
  • 打赏
  • 举报
回复
to:yleiou(生活真痛苦)
如果是那样就好了,用户就是要求最后统一保存。我也没办法!

to:windindance(风舞轻扬)
请详细一点好吗。谢谢。filter怎么控制?
dreamyyuan 2004-07-21
  • 打赏
  • 举报
回复
同意 windindance(风舞轻扬)的做法,
對於數據量大的,只能用 yleiou(生活真痛苦) 的做法了,
沒有什麼不方便的,大家也都是這麼做的。
liuqifeiyu 2004-07-21
  • 打赏
  • 举报
回复
up
接分
windindance 2004-07-21
  • 打赏
  • 举报
回复
如果数据量不大,可以一次性用adoquery2.open打开所有记录。
然后采用adoquery2.filter来控制显示的记录。
这样能够满足你的需求。
yleiou 2004-07-21
  • 打赏
  • 举报
回复
当grideh1中选取一条纪录时 如果Grideh2中的内容更新了 提示用户保存一次不可以吗?

当grideh1中选取一条纪录时 是不是adoquery2要更换查询语句呢
geshiziji 2004-07-21
  • 打赏
  • 举报
回复
学习
caoaijing 2004-07-21
  • 打赏
  • 举报
回复
filter之后,没有提交的数据不会丢失吧
jijl2001 2004-07-21
  • 打赏
  • 举报
回复
huluobowangmeng 2004-07-21
  • 打赏
  • 举报
回复
我试一下!
加载更多回复(3)

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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