C/S中的事务问题?(可能是比较幼稚。。。)(50分)

G

gmwing

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi+sql server中,如果多客户端同时远程开启(调用)SQL SERVER中的事务,
事务间会不会互相干扰?
如:
with adoquery1 do
begin
close;
sql.clear;
sql.add('begin transaction');
execsql;
end;
间隔不定时的时间后,他们以下语句:
with adoquery1 do
begin
close;
sql.clear;
sql.add('commit transaction');//或sql.add('rollback transaction')
execsql;
end;
这样会不会这个事务提交或回滚另一事务的情况出现??请各位富翁赐教!
 
不会,在delphi中事务有一个字段是TransactionID用来表示应用程序用的事务,
建议用delphi的事务处理,strattransaction
 
to:yangxiao_jiang,
从问题可以看到 'begin transaction'和'commit transaction'是传送到sql server中执
行的,所以它们开启的事务是不是和DELPHI中的事务应该没有关系??我到底应该怎么样去
理解我的问题??
 
我的问题是不是有点难还是。。。。
帮帮忙啦!各位富翁。谢!
 
Sql server中每个事务都有一个TransactionID来标识它,不会产生混乱的,
我建议你用adoconnection的事务处理比较好
try
adoconnection1.betrans
...
...
adoconnection1.commit
except
adoconnection1.roback
end
 
to antic_ant:
用adoconnection的事务处理与Sql server中的事务处理有什么区别?
 
还是祈求更详细的答案。谢!
 
注意: 每一个对数据库的连接是独立的,它们之间的事务不会
互相干扰, 这是数据库的基本原则
不同的电脑当然不会使用一个连接(web服务除外)
同一台电脑可能使用多个连接
一个连接可以进行多个串行或并行处理
一个连接所使用的事务可以是多个的, 不同事务互相不影响.
 
接受答案!非常多谢antic_ant、 fatbug 、yangxiao_jiang三位富翁。
 
顶部