我现在有一个主从关系表,我想把其数据更新(商业逻辑)放入到中间层中,但这样就需更新两个表,如何能做到象客户端那样一个APPLYUPDATE(0)就可更新主从表。

  • 主题发起人 主题发起人 eire
  • 开始时间 开始时间
E

eire

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有一个主从关系表,我想把其数据更新(商业逻辑)放入到中间层中,但这样就需更新两个表,如何能做到象客户端那样一个APPLYUPDATE(0)就可更新主从表。 (1分)<br />
代码:
[:D][8D]我现在有一个主从关系表,我想把其数据更新(商业逻辑)放入到中间层中,但这样就需更新两个表,如何能做到象客户端那样一个APPLYUPDATE(0)就可更新主从表。
(分数另贴加100,有合适代码片断另加100)
 
只需要设置主从表的关系即可,从表只相当于主表的一个字段。你客户端用的是
clientdataset吗?设置从表clientdataset的datasetfield属性即可了
 
我现在就用的这种方式,但我想把这段东东放在服务端即中间层上,不知能否在服务端调用期DSP(DATASETPROVIDER)的方法。
 
我是新手,初次回答问题,希望对你有帮助,;)
你可以看看李维的《分布式多层应用系统篇》2-35页的使用巢状数据表
实现Master/Detail的应用系统
在appserver中分别放置一个主表的dataset和一个从表的dataset,一个datasource,一个
datasetprovidor
将datasource连接到主表的dataset,从表的dataset连接到datasource,
datasetprovidor连接到主表的dataset,
在从表的dataset中的MasterField属性中建立主从表的关联
在client中将主表和从表的clientdataset的ProvidorName都设为同一个datasetprovidor,
用主表clientdataset的Fields Editor加入所有字段(其中包括了从表关联字段)
在从表的clientdataset的DataField属性中将能出现主从表关联的选项
用Applyupdate更新数据时,只需调用主表的clientdataset的Applyupdate方法就可以
实现主从表的同步更新了。
;)
 
TO [swordman] 你说的不就是 antic_ant说的吗?这种方法我想放在服务端即中间层去!
unit PStockSvr_TLB;
IcoStockSvrDisp = dispinterface
['{1348D8FA-19F4-4856-87D9-74515AC1CABB}']
function SaveBiLL(var crInsert: OleVariant;
crDelta: OleVariant): WordBool;
dispid 1;
function AS_ApplyUpdates(const ProviderName: WideString;
Delta: OleVariant;
MaxErrors: Integer;
out ErrorCount: Integer;
var OwnerData: OleVariant): OleVariant;
dispid 20000000;

我在 单元中定义一个SAVEBILL方法在其方法中可以调用AS_APPLYUPDATES的方法(不知合法)[gold][/gold]。
不知OWNERDATE参数代表什么。帮助上说是传回客户端的句柄,但不知实际如何运用,
知者请略说一二。
 
OWNERDATE 是olevariant 类型的,你可以存任何数据,关键是看你自己如何使用
 
to eire:
‘我现在就用的这种方式,但我想把这段东东放在服务端即中间层上,
不知能否在服务端调用期DSP(DATASETPROVIDER)的方法。’
如果您试一试,会知道这是最好的办法。
 
不知是否是最好的请高手们也说说嘛[8D][8D]
 
我是新手,初次回答问题,希望对你有帮助,;)
你可以看看李维的《分布式多层应用系统篇》2-35页的使用巢状数据表
实现Master/Detail的应用系统
在appserver中分别放置一个主表的dataset和一个从表的dataset,一个datasource,一个
datasetprovidor
将datasource连接到主表的dataset,从表的dataset连接到datasource,
datasetprovidor连接到主表的dataset,
在从表的dataset中的MasterField属性中建立主从表的关联
在client中将主表和从表的clientdataset的ProvidorName都设为同一个datasetprovidor,
用主表clientdataset的Fields Editor加入所有字段(其中包括了从表关联字段)
在从表的clientdataset的DataField属性中将能出现主从表关联的选项
用Applyupdate更新数据时,只需调用主表的clientdataset的Applyupdate方法就可以
实现主从表的同步更新了。
;)

说的是对的吗我想是可以调用那些方法的因为用的是applyupdates, 从表变成了数据集字段了
 
>>>hugshen,为何抄[swordman], 的,这样不好的哟!:))
 
你在Server的typelibrary中添加一个方法,用来做更新,
client在远程使用这种方式调用该方法就可以了
DcomConnection.Appserver.yourMethod(param1,param2,IsOk);
判断IsOk的值就可以了,isok的值在你的server上更新后设定,没错的
 
to NightMare:
是主从表
我是想在服务端写方法只更新主表不用更新从表,试验中,应没有问题。
 
多人接受答案了。
 
后退
顶部