这本来就是Delphi的一个问题。在Delphi的Readme的Known Issues里面,每个版本都这么说。
解决方法:
1、每条主记录就有一对M/D的Query相对应。
2、将Detail的数据统统读入到Query中,不做M/D的连接,而是写程序,主表的记录每发生移动,从表就做一次Filter。
解决方法:
1、每条主记录就有一对M/D的Query相对应。
2、将Detail的数据统统读入到Query中,不做M/D的连接,而是写程序,主表的记录每发生移动,从表就做一次Filter。
解决方案 »
- 用Delphi接收C++发送的sendmessage消息,只能收到一个字符怎么办?
- 如何将memo中选中的文字拖动到edit中
- 来玩一个小游戏~~~~
- 请问Delphi7更新现在到Update几了?
- 取到dbgrid中的某行某列的值,指點
- 我突然发现我有五颗星星了,散分!
- 关于Adostroedproc的简单问题,马上揭贴,在线等待!!!
- 在我用的Ado设计的Midas中为什么不能更新服务器
- 使用ADO+ACCESS,发布时装哪个版本的mdac好?
- 谁用过DFS控件包中的SystemTreeView等类似WIN资源管理器的控件?
- sql查询问题,急!
- 我想通过我的程序直接向一个打开的程序(如记事本或WORD)中传送字符串,请问如何实现?
能详细一点吗,我有点看不懂,
谢谢!!
也就是说 detail中的SQL 要写成 SELECT * FROM TABLE_DTL
要取全部数据,是不是?
我用的是 updatesql 呀,怎样解决,能详细一点吗?
第一条比较笨的,就是每取一条主记录,就需要一对M/D的TQuery(一般都靠动态生成)。如果有主表有10条记录,就意味着有10对M/D的TQuery。够笨吧。
这两条我都用过。都是传统的两层的解决方案,都不是非常好。
最好的解决方案是三层架构中的M/D模式。
三层结构中结构是不是这样
服务器 上 M 表 D 表
| |
| |
| |
客户机 上 ClientDataset M ClientDataset D
这样 如果修改了 ClientDataset M , ClientDataset D 不会刷新吗
如果不会刷新,那么 移动 ClientDataset M 指针,不是也不会刷新吗?
结构和你上面的完全不一样。
服务器: M表---------D表
|
|
|
客户端 CDSM--------CDS D
M/D 模式是在服务器上建立的吧.
那么移动 ClientDataset M , ClientDataset D 怎么会知道要刷新呢?
是不是需要手动去刷新?
非常感谢 chechy,
谢谢,
等我研究完后,再来向你提问,能问一下你的 Mail 吗,
我怕联系不到你
我的 Mail [email protected] QQ 446828谢谢,