多层系统中进行多个数据标的更新问题!300分重金求救!(200分)

  • 主题发起人 主题发起人 xujiancai
  • 开始时间 开始时间
X

xujiancai

Unregistered / Unconfirmed
GUEST, unregistred user!
一直弄不明白多层结构中如何对多个表进行更新,李维的书(3-20)有详细的叙述,但我天资不高
时间不多,而且我要的使用ado的,与李维的书不大一样!
我想在重金求简单的例子,SERVER端:
有adoDataset组件,commandText:select * form Table1,Table2 where Table1.TID=Table2.SID
表结构:Table1(TID,Name) Table2(SID,Price,Count)
如何对这个表进行更新?
(如果没有李维关于多表更新的例子,我可以提供,事成之后,300分决不食言)
 
在server端 datasetprovide1.dataset:=adodataset,
datasetprovide1.resolvetodataset1:=true //讓ado自行處理多表更新
 
这样行吗?我是过好像不太稳定(可能是我的程序问题!)
我看李维的书,他要用到UpdateSQL,而且好像听复杂的,你能说说其中的道理吗?
 
用UpdateSql與Tquery聯合使用﹐比如我要在一個query中同時更新兩個table,可以
在一個sql中拉出兩個table的相關資料﹐用戶編輯提交后﹐觸發tquery的onupdaterecord
事件﹐在其中依次更新兩個table
...
q_ddku_dess.UpdateObject:=usql_ddku_dess;
usql_ddku_dess.setparams(updatekind);
if (q_ddku_dess.fieldbyname('pin_qty').oldvalue=null)and (q_ddku_dess.fieldbyname('pin_qty').newvalue<>null)then
begin
usql_ddku_dess.setparams(ukInsert);
usql_ddku_dess.ExecSQL(ukInsert);
updateAction:=uaApplied;
end ;
if (q_ddku_dess.fieldbyname('pin_qty').oldvalue<>null) and (q_ddku_dess.fieldbyname('pin_qty').newvalue=null)then
begin
usql_ddku_dess.setparams(ukDelete);
usql_ddku_dess.ExecSQL(ukDelete);
updateAction:=uaApplied;
end ;
if (q_ddku_dess.fieldbyname('pin_qty').oldvalue<>null) and (q_ddku_dess.fieldbyname('pin_qty').newvalue<>null)then
begin
usql_ddku_dess.setparams(ukModify);
usql_ddku_dess.ExecSQL(ukModify);
updateAction:=uaApplied;
end;
...
另一個table同上
但ADO就不行了﹐sign
 
to ywjjj:
hi,楊大哥您好
to xunjiangcai:ywjjj好好厲害的!
 
ywjjj的方法是可以的,而且很简单很方便!但我有如下问题,如上例:
当用户删除adoDataset的一条纪录时,我只要求她删除Table2相关的纪录,
但Table1是不可以删除的。怎样实现?
 
我也根据李维的书所说,使用ADOQUERY处理多表的操作,发现有时在CLIENTDATASET中数据
是正确的,但是提交后,有时服务器端没有更新,有时只更新一部分。而且我执行了书中的
例子,好象也不行。
我看可能是ADOEXPRESS的毛病。有一点须注意的是,有时侯的不成功是因为非法数据
 
李维的书废话太多,有时间倒不如自己研究,多种方法做测试.
 
ADO能对多个JOIN的数据直接修改
 
详细点说说!
 
李维的新书(第三本)又讲了这个问题。
书上的例子可以到我的主页(http://evemm.51.net)的好东东中下载。
书上讲得好详细的。
有空看看吧!
第二本上的是有好多的问题。
比如:Master/details就有一个大问题
“如果在应用服务器上修改Master的主键,
则details的数据不会更新<指增加数据时>.”
我不知是我的程序有问题还是...
我现在只有用另一种方法了,
不过Master/details的功能还是很好用的,
除了上述问题.
 
真会做广告
 
这样高的分数,没有人愿给出一个详细的例子吗?
 
你自己试过了吗?用ADO
 
让ADO自己处理就行了
 
多人接受答案了。
 
后退
顶部