您的位置:首页 >> 数据库 >> PowerBuilder >> 正文
PowerBuilder RSS
 

在一个存储过程中,建立一张临时表

http://www.rdxx.com 06年06月05日 09:46 互连网 我要投稿

关键词: 临时表 , 存储过程 , , 存储

  T-SQL允许在存储过程中,建立临时表,但是不允许在用户自定义事务中,创建临时表。如果让我们了解一下PowerBuilder的事务处理机制,那么该问题的答案便一目了然。

  PowerBuilder使用事务控制结构,例如SQLCA,连接数据库服务器SQL Server,事务控制结构有一个成员AUTOCOMMIT用于控制数据库操作事务。 AUTOCOMMIT是布尔类型,缺省情况下,其值为FALSE。当其值为FALSE时,应用应该使用PowerBuilder的事务管理命令CONNECT,COMMIT,和 DISCONNECT编写用户自定义事务。PowerBuilder发给服务器的T-SQL命令全部都是用户自定义事务。因此,这种情况下,执行建临时表的存储过程,应用出错。

  如果将事务控制结构的AUTOCOMMIT置为TRUE,则PowerBuilder不对事务进行管理,只是将SQL语句送给服务器。SQL Server缺省情况下,除非用户自己定义事务,否则每条修改语句是一个事务。这种情况下,应用需要定义事务,就直接把“begin transaction”和“commit”语句,送给SQL Server。

  所以,在PowerBuilder中,要正确执行建临时的存储过程,在调用之前,将AUTOCOMMIT置成TRUE,那么该存储过程就不在用户自定义事务中,和在 isql中测试一样,运行不会出错。

  和这类似的情况还有,在PowerBuildr中,执行DDL命令,例如:建表,或者索引等等,都和AUTOCOMMIT有关。


 
 
标签: 临时表 , 存储过程 , , 存储 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站