求助:PB在调Sybase数据库的存储过程时报的错

侠雨飞飞 2003-11-27 11:24:52
我的数据窗口数据源是一存储过程
结果在调用的时候,报下面的错:
DataWindow Error

Select error: The 'CREATE TABLE 'commond is not allowed within a multi-statement transcation in the 'tempdb'


我的存储过程定义如下:



create procedure app_pass_info @app_no char(8),@app_type_code char(3),@flow_num int as
begin
declare @max integer,@step_no integer,@no integer,@step_min integer,@tache_code char(3)
select @max=max(PASS_NO) --当前环节的流水号
from APP_PASS_INFO
WHERE APP_NO=@app_no and FLOW_NUM=@flow_num
select @step_no = STEP_NO ,@tache_code = TACHE_CODE --当前环节的步骤号
from APP_PASS_INFO
where PASS_NO=@max
AND APP_NO=@app_no and FLOW_NUM=@flow_num
SELECT @step_min = STEP_NO
from APP_FLOW_SET
WHERE STEP_NO = @step_no
AND APP_TYPE_CODE = @app_type_code
and FLOW_NUM=@flow_num
IF @@rowcount<>1
begin
select @step_min = min(STEP_NO)
FROM APP_FLOW_SET
WHERE STEP_NO > @step_no
AND APP_TYPE_CODE = @app_type_code and FLOW_NUM=@flow_num
select @no = PASS_NO --按照流程设定的下一个环节的序号
from APP_FLOW_SET
where STEP_NO = @step_min
AND APP_TYPE_CODE = @app_type_code and FLOW_NUM=@flow_num
end
else
begin
select @no = PASS_NO + 1 --按照流程设定的下一个环节的序号
from APP_FLOW_SET
where STEP_NO = @step_min
AND APP_TYPE_CODE = @app_type_code and FLOW_NUM=@flow_num
end
--创建流程浏览表
create table #TEMP
(V_STEP_NO INTEGER not null,
V_TACHE_CODE CHAR(3) null,
V_PERSON_CODE CHAR(8) null,
V_TRAN_TIME SMALLDATETIME NULL,
V_PASS_TIME SMALLDATETIME NULL,
V_LIMIT INTEGER NULL,
V_NUM INTEGER NULL,
V_NO NUMERIC IDENTITY)
--首先将办理情况表中已经办理和当前正在办理的环节显示出来
INSERT INTO #TEMP
SELECT P.STEP_NO "V_STEP_NO", --步骤
P.TACHE_CODE "V_TACHE_CODE", --标准环节
P.PASS_SIGN "V_PASS_SIGN", --经办人
P.TRANS_TIME "V_TRAN_TIME",
P.PASS_TIME "V_PASS_TIME",--完成时间
P.TIME_LIMIT "V_LIMIT",
P.OVERTIME_NUM "V_NUM"
FROM APP_PASS_INFO P
WHERE P.APP_NO=@app_no
and P.FLOW_NUM=@flow_num
ORDER BY P.PASS_NO
IF @tache_code <> '777 '
begin
--将流程设定的可能后续环节插入到末尾
insert INTO #TEMP
(V_STEP_NO, V_TACHE_CODE, V_PERSON_CODE,V_LIMIT)
select A.STEP_NO, A.TACHE_CODE, A.PERSON_CLASS_CODE,A.TIME_LIMIT
from APP_FLOW_SET A
where A.PASS_NO >= @no
and A.APP_TYPE_CODE =@app_type_code and A.FLOW_NUM=@flow_num
ORDER BY A.PASS_NO
end
select * from #TEMP
end

...全文
27 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
realfool 2003-11-29
  • 打赏
  • 举报
回复
你的数据窗口在连接事务对象时要用settrans()不能用settransobject(),否则就出这个问题
lmby 2003-11-29
  • 打赏
  • 举报
回复
那是因为你的tempdb里已经有表#TEMP了
侠雨飞飞 2003-11-29
  • 打赏
  • 举报
回复
谢谢诸位
:)
侠雨飞飞 2003-11-27
  • 打赏
  • 举报
回复
神啊,救救俺吧

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧