(39)一个简单的SQL Server问题: Transaction(33分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
sql server里的transaction 和Delphi里的事务处理有什么区别和联系?
在Delphi里怎么引用Sql server的Transaction?
如:
Begin Transaction
insert myTable (书籍编号,书籍名称)
value (101,"win98")

select 书籍编号,书籍名称
from myTable
if @@ErroR=0
Commit Transaction
else
RollBack Transaction



 
database中不是有事物处理的过程吗?
 
"sql server里的transaction 和Delphi里的事务处理有什么区别和联系?"
------直接在Sql 服务器上处理会更快些吧?
 
<a href="http://www.gislab.ecnu.edu.cn/delphibbs/dispq.asp?LID=255083">http://www.gislab.ecnu.edu.cn/delphibbs/dispq.asp?LID=256070</a>
 
netyjj兄,
“在Delphi里怎么引用Sql server的Transaction?”
比如我上面说的那个,在Delphi里怎么使用呢?
 
database1.startTransaction ;
Try
Query1.close ;
Query1.sql.clear ;
Query1.sql.add('insert myTable (书籍编号,书籍名称) value 101,"win98")') ;
Query1.execsql ;

Query2.close ;
Query2.sql.clear ;
Query2.add('select 书籍编号,书籍名称 from myTable') ;
Query2.Open ;

database.Commit ;
Except
database.RollBack ;
end ;

我想Delphi的事务处理是通过BDE调用数据库的事务处理,应该都一样。
就象可在前端写SQL,也可以在数据库中写SQL一样吧。
 
DSM2000兄,这是Database 的处理方法了。
我想即使作用一样,也存储到服务器上该怎么做?
另:我还是觉得应该在服务器上效率高。
 
如果后端是SQL Server,TDatabase的StartTranscation/commit/rollback
就会调用SQL Server的 Begin Transaction/Commit Transaction/RollBack Transaction。

如果不信,打开sql trace,一看就知道了。
(后台SQL状况,一般在BDE中把QueryMode设置为SQLPASSTHROUGH)。
 
温柔兄,
“ Begin Transaction
insert myTable (书籍编号,书籍名称)
value (101,"win98")

select 书籍编号,书籍名称
from myTable
if @@ErroR=0
Commit Transaction
else
RollBack Transaction”
放到服务器上的话(怎么放??),在Delphi里怎么调用?
唉,我表达不清楚我的意思

 
create procedure MyProc as
Begin Transaction
insert myTable (书籍编号,书籍名称) values (101,"win98")
select 书籍编号,书籍名称 from myTable
if @@ErroR=0
Commit Transaction
else
RollBack Transaction

然后,Delphi中
Query1.close ;
Query1.sql.clear ;
Query1.sql.add('myproc') ;
Query1.execsql ;

如果你是想实现这个功能,那么就用类似的存储过程,不知这次我是否理解正确。
但要注意,如果这个存储过程中间异常退出,则有可能遗留下一个未结束的transaction。

因为有可能在
if @@ErroR=0
Commit Transaction
else
RollBack Transaction
之前语句就出现了异常,所以没有try...except功能强。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部