用MIDAS做中间层,可以更新,但改COM+就不能更新后台数据库.(更新问题)(100分)

  • 主题发起人 主题发起人 yocheng
  • 开始时间 开始时间
Y

yocheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我用midas做中间层,更新数据正常但换COM+做中间层就不能更新,我那儿设置错?
中间层的DataSetProvider1的options的allowcommandtext设为true;
resolvetodatase设为false;
用applyupdates(0);更新数据库无反应,也无提示出错.查看SQL的事件探查器,数据库无接更新指令
我那里出错,想到头痛啦!!!
 
客户端到底有没有数据送过来哦。
 
有啊客户端有数传过来
 
在DataSetProvider的GetTableName事件里面写
TableName := '要更新的表的名称';
 
to lvloj:
在DataSetProvider的GetTableName事件里面可以写多个表吗?如更新主从表
 
在DataSetProvider的GetTableName事件里面可以写多个表吗?如更新主从表
如果是主从表的话,可以将resolvetodatase设为True,然后在DataSetProvider1BeforeApplyUpdates事件中写
ADOQuery.SQL.Text := '主从的SQL';
ADOQuery.Open;
或将resolvetodatase设为False,然后在DataSetProvider1BeforeUpdateRecord事件中
自己写代码手动更新主从表.
 
to lvloj
Thank,我的问题已经解决了!但可否讲一下为什么要在在DataSetProvider的 GetTableName事件里面写 TableName := '要更新的表的名称'我想问白一下原理.
这100给你,后天结贴
 
因为COM+默认的是无状态的对象,他不会记录客户端的信息.无论你读取了哪一个表的数据,他都不会记录.所以在你的客户端提交数据的时候,他也并不知道要提交到哪一个表,因此需要告诉服务器端要更新的表的名称.
 
可以QQ聊系你吗?我的QQ:16993330
 
我的QQ是:13029886
 
后退
顶部