在MIDAS客户端如何控制事务?事务能够并行吗? (100分)

  • 主题发起人 主题发起人 eire
  • 开始时间 开始时间
[:D][8D][:(][:(!][^]
 
使用MIDAS时,不用在客户端进行事务控制,因为,MIDAS会在应用程序服务器端自动进入事务状态,
如果你使用StartTransaction打开新的事务,那么他会进入第二个事务;这是没有必要的。
 
谢谢您的回答,那CLIENTDATA。COMMANDTEXT中有多条SQL语句时,如果其中一条语句执行错误,事务可以回滚吗?
 
当然!!
 
客户端不能控制事务,要想执行几句SQL语名执行,
只能在应用服务器端处理。
您可以将要提交的数据以参数传到服务器,由应用服务器负责
事务。
if 数据库连接.InTransaction then
数据库连接.Rollback ;
数据库连接.StartTransaction ;
////SQL语句
数据库连接.Commit ;
 
>>使用MIDAS时,不用在客户端进行事务控制,因为,MIDAS会在应用程序服务器端自动进入事务状态,
>>如果你使用StartTransaction打开新的事务,那么他会进入第二个事务;这是没有必要的。
同意。

 
to 高小五:
可是书上和帮助上都说MIDAS会自动进行事务处理呀!
 
你不用在客户端进行事务控制。
这还不明白吗???
 
书上说,客户端不需要自己控制事务,
如果你有多条语句要执行可以用存储过程来实现
 
谢谢各位,加分。其实我现在是在服务器端开始事务并执行的
 
MTS自动进行事务处理,而Midas不行
 
MTS?
MIDAS?有何关联吗
 
>>MTS自动进行事务处理,而Midas不行
Midas也行。请看李维的书。
MTS是MS作的三层次的解决方法。
MIDAS是BORLAND的。但你可以在MIDAS中使用MTS。
 
to wumeng:
请问如果我有这三条SQL语句放在CLIENTDATASET。commandtext中
如果其中有一条执行错误,事务会回滚?
SQL语句:
cKCZZ_Select='SELECT COUNT(*) INTO ICOUNT FROM KCZZ_TABLE WHERE CKBM=''%s'' AND IMONTH=%d AND SPBM=''%s'';';
cKCZZ_Update='UPDATE KCZZ_TABLE SET QCKCSL=QCKCSL+%s WHERE CKBM=''%s'' AND IMONTH=%d AND SPBM=''%s'';';
cKCZZ_Insert='INSERT INTO KCZZ_TABLE (CKBM,SPBM,IMONTH,QCKCSL,SRSL,FCSL) VALUES(''%s'',''%s'',%d,%s,0,0);';
cUpdate_SFSH='UPDATE RKD_TABLE SET SHR=''%s'' WHERE RKDH=''%s'';';
 
这样的规则应该放在服务器上,(你可以写个存贮过程)但直接在一个CDS中写三条更新
的语句我没这样作过,不知道它会不会回滚,但你试一下就知道了吧 :)
 
后退
顶部