菜鸟送分问题--主-明细表问题的困扰(100分)

  • 主题发起人 主题发起人 i2346
  • 开始时间 开始时间
同志看来你遇到好人了!

我就是

不过我没用过sql sever2000

可以看看李维的书!《Delphi 5.X ADO_MTS_COM+高级程》
 
这个问题我曾经遇到过,我看了李维的书,用它的方法使用主细表会有问题,不知道你有没有、
使用事务,如果有的话,我觉得问题出在ado的事务的处理上。他的事务返回一个level,估计
这个值是反映几个事务打开,如果你的主细表在主表apply时,根据你关联的表得个数,
ado会返回level=表的个数,而在commit时,仅仅level-1,这时候就会出错了。所以我后来
改了它的代码,自己 给level赋值,暂时解决了。你如果和我这种情况一样,你可以试一试。

gutian
 
我用李维书上的方法试过了(见我的贴子),但有问题存在,如果用ADO事务的话,和用BDE的
CACHEUPDATE一样,用代码实现其实并不难,比如在焦点从主表移向子表前对主表进行提交,
但我一直不明白的是,难道非得用代码不成吗?而且我想知道,有没有对主-明细表结构成熟
的解决方法,最好有这个部分的源代码。特别是我说过的用SQL SERVER2000+DELPHI的开发
经验的。为什么用这个组合呢?因为一是我对SQL SERVER比较熟悉,二是在一些多表联合查询
得出结果集方式,用存储过程可以很好的解决及有很好的执行速度。请高人们指教。
同时也谢谢以上给予帮助的同志们:)
 
我现在又用李维书中的主-明细表方法试了一下,也就是主表用TADODATASET,COMMANDTEXT
是“select * from InMain",而子表也用TADODataset,Commandtext为“select * from
inlist where orderno=:orderno",子表的datasource为主表对应的Datasource。先前插入
与更新时的外键错误不出现了,可在插入新记录及更新主表记录时,子表记录会丢失,也就
是当前主表记录状况下看不见对应的子表记录,但在浏览其它主表记录回到修改或者新增记
录的位置,子表内容又出现了。我用例库NORTHWIND的ORDER和ORDERDETAIL来试验也出现同
样的问题。
而且当我使用BATCHUPDATE的时候,BATCHUPDATE后对应新增的子表都没了。WHY??
 
DELPHI的例程库中的MASTAPP,和很多的书上写的主从结构的程序,其数据库大部分基于PARADOX,而对于SQL
SERVER或ACCESS来说,如果在数据库中已经设置了相关的外键后,程序中在新增或更新主表记录后,要想添加
或更新子表记录必须先提交主表记录,否则就会出错。但我一直认为我的设置可能在哪里有问题,现在也是这
么认为,为什么呢?我是很相信李维大师的,在他的ADO那本书中的主从表数据库范例中也会出现同样问题!
但我很奇怪,在所有大富翁的C/S数据库已答问题中未见到相关的问题提问或解答。这就更加让我怀疑我的设置
是否有问题,但我在新装的DELPHI中用默认值下也会出同样的问题,而用PARADOX的数据库就没有这些问题。

我一直渴望高手们谁有DELPHI+SQL SERVER的主从表开发经历,特别是不用代码实现的朋友指教一下。如果用
代码的朋友能不能发给我相应段落的代码,小弟在此先行谢过。我的E-Mail是:i2346@sina.com。

小弟一定多多给分,我说过了在这个问题上我愿意给300分,如果不够还可以再加。我这么执着,只是因为我认
为这个这么常用的开发结构,不可能大家都不出问题,只有我出吧?而且不可能大家都有代码来写吧?
拜托!拜托!
 
用CACHEUPDATE,自己写代码实现主表的先提交
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部