多个ClientDataSet在客户端怎么更新,中间层我用的是DBExpress(100分)

  • 主题发起人 主题发起人 hotbuysell
  • 开始时间 开始时间
H

hotbuysell

Unregistered / Unconfirmed
GUEST, unregistred user!
多个ClientDataSet在客户端怎么更新,中间层我用的是DBExpress。
在客户端可以这样用吗
ClientDataSet1.ApplyUpdate(0);
ClientDataSet2.ApplyUpdate(0);
另外如果在中间层自己写starttransaction,commit,rollback,TTransactionDesc参数怎么传递,高手快请
 
ClientDataSet1.ApplyUpdate(0);
应该可以的……先试过再说吧
 
你用DBExpress如何连接MS sql呀?
 
客户端直接更新有機會有性能問題,最好改在中间层如BeforeUpdateRecord中
 
太阳河上,我安装好就可以连接sql的
DBExpress好像和SQL Server的连接有问题,主从表的巢状结构,在简单的表中可以,复杂一点就有问题,可能是数据类型不兼容,不知道大家有没有同感?
 
ClientDataSet1.ApplyUpdate(0);
ClientDataSet2.ApplyUpdate(0);
可以是可以
传递参数,简单的就用long,BSTR,BSTR *....,复杂的转化为OleVariant
主从表:我在服务器端连接不行,在客户端对各ClientDataSet进行连接可以
 
看上一贴!!!
 
Clientdataset.applyupdats(0)是可以用的,多表的事务处理提供一种方法:
在中间层写个包含交易的方法由客户端调用,将Clientdataset.delta作为参数传入.
/* DCOMConnection1.AppServer.ApplyUpdates2 (clientdataset1.delta,clientdataset2.delta) */
procedure TAppServerClass.ApplyUpdates2(var delta1,
delta2: OleVariant);
var errs :integer;
begin
database1.StartTransaction;
try
if not varisnull(delta1) then
begin
delta1:=DataSetProvider1.ApplyUpdates(delta1,0,errs);
if errs>0 then
begin
....
end;
end;
if not varisnull(delta2) then
begin
delta2:=DataSetProvider2.ApplyUpdates(delta2,0,errs);
if errs>0 then
begin
....
end;
end;
database1.Commit;
except
database1.Rollback;
end;
end;

 
对天 clientdataset的delta中有多条记录在中间层如何用代码来更新?
 
DataSetProvider.ApplyUpdates方法本身就是对delta中所有的记录提交,
如果想截获每比记录,可以在DataSetProvider.onUpdateData事件中处理.
 
建议传递DELTA参数到中间层,用代码控制更新,使之在同一个事务内
 
谢谢,不错
 
后退
顶部