奇怪,真奇怪,闹鬼问题(90分)

  • 主题发起人 主题发起人 oceanwave
  • 开始时间 开始时间
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ACCESS建了两个为主从表关系的表Main和List,
表Main的结构是:
OrderNo,OrderDate
表List的结构是:
OrderNo,ProductNo,Tot

两表在ACCESS中通过OrderNo建立一对多的关系,用BDE的CACHEUPDATE的方法当MAIN有
一记录对应的LIST有多条记录,对LIST的非当前首条从表记录的Tot(数量)进行修改,
在主表提交后,LIST的当前首记录的productNo(产品号)被自动修改成先前修改过的记
录内容,也就是在同一张主表中出现两个一样的记录。
我的主表的AfterPost是这么写的
database.ApplyUpdates([Main,List]);
而数据库改为SQL SERVER时,上述问题不出现,WHY?真奇怪!
 
你讲得太乱了。
 
一定要这个方法吗,万一修改了list里三条记录会不会出错??
 
修改首记录不会出错,第二条记录开始就会出错,好象有个规律:
第一条记录会被换成最后一条记录,第二条记录会被换成倒数第二条记录,依此类推,
而且,有时ProductNo被另一记录替换,而对应的Tot只是数值变了(不是对应的值)
 
你的从表的SQL是怎样写的,如是同时连二个表,ADO会对二个表同时进行更新,即使是
select tb.*
from ta.id = tb.id
 
建议使用ado.使用BDE不小心就可能就到此问题,如果不行重新建TABLE.重新建窗体,然后
再试试看.
 
天哪!重新窗体,重建TABLE?我有二十几个窗体,三十几个表,大部分表都有极复杂的
计算字段,做窗体,建数据模块花了我二个多星期的时间。重建?不是要我命吗?
ADO,我也想用。但有些问题没解决。有人能告诉我吗:
主要是主从表UPDATEBATCH模式的两个问题:
1、当在新增主表的状态下,对应从表记录只能看到当前新增状态的记录,其它已添加的对
应从表记录只有在该新增的主表提交后,才可看到全部新增的从表记录?有什么解决办法。
2、设主表与从表的外键字段为OrderNO,当我对主表的OrderNo进行修改,按外键的关联性
从表对应的OrderNo也应进行修改为同样值,可现实中从表OrderNO不修改,为什么?如何
解决?
 
应该用数据库的事务处理这种结构的关系
 
我也遇到同样问题,从表的OrderNo和ProductNo要同时设为主键,就搞定了:)
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部