PB下不能执行有临时表的存储过程??
在ASE12.0上编写的存储过程,用到了建立临时表的语句create table #temp1(t1 varchar(255))。在PB8.0下调用这个存储过程,出现错误
sqlca.sqlerrtext="The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'tempdb' database."
但在isql和sql Advantage下执行该存储过程,没有任何问题。请各位高手指点。
问题点数:100、回复次数:5Top
1 楼a2000(夜雨)回复于 2002-12-07 17:27:35 得分 0
你可能是在存储过程中的事务"begin transaction"和"commit transaction"之间使用了create table 语句。不能在事中执行建表语句
Top
2 楼ben988211(???)回复于 2002-12-08 13:07:31 得分 0
如果是sql库,你可以在存储过程中使用表变量Top
3 楼shitian(十天)回复于 2002-12-08 16:06:41 得分 0
存储过程中我没用begin transaction。Top
4 楼fengzeng(风之子)回复于 2002-12-09 14:05:58 得分 0
要在一个事务中执行!!!Top
5 楼zdgdh(老吴子)回复于 2002-12-11 00:29:15 得分 100
你可以试试一下方法:
创建一个新的事物对象,比如:Transaction ForASE12
ForASe12 = create transaction
将SQLCA的数据库连接参数赋给ForASE12,但必须由下一句:
ForASE12.AutoCommit=true;然后,以此事物对象运行存储过程。Top




