asp中关于调用oracle存储过程的问题!!!

hqz010 2004-01-09 10:44:48
asp中关于调用oracle存储过程:
过程内容为:
/*设置节点处理用户*/
/*参数说明:f_action 1表示为选择此项,2表示为删除此项*/
CREATE OR REPLACE PROCEDURE p_item_siteincept(f_managercode in varchar2,f_sitelink in number,f_action in number)
AS
hr number;
myID number;
begin
if f_action=1 then
select count(*) into hr from Tab_Item_siteincept where f_managercode=f_managercode and f_sitelink=f_sitelink;
if hr<=0 then
select public_id.nextval into myID from dual;
insert into Tab_Item_siteincept(f_id,f_managercode,f_sitelink) values(myid,f_managercode,f_sitelink);
end if;
else
delete from tab_Item_siteincept where f_managercode=f_managercode and f_sitelink=f_sitelink;
end if;
end;

asp中调用语句如下:
sql="select f_managercode from tab_manager"
'tempRs.open sql,conn
set tempRs=conn.dbcreatedynaset(sql,0)

do while not tempRs.eof
str=tempRs("f_managercode")
if int(f_sitelink)=5 then

if str=f_managercode then
f_action=1
else
f_action=2
end if
else
f_managercode=request(str)
if(f_managercode="yes")then
f_action=1
else
f_action=2
end if
end if

conn.Parameters.add "f_managercode",tempRs("f_managercode"),1 'ORAPARM_INPUT
conn.Parameters("f_managercode").ServerType=1 'ORATYPE_VARCHAR2

conn.Parameters.add "f_sitelink",f_sitelink,1
conn.Parameters("f_sitelink").ServerType=2 'ORATYPE_NUMBER

conn.Parameters.add "f_action",f_action,1
conn.Parameters("f_action").ServerType=2


conn.DbExecuteSQL("Begin p_item_siteincept(:f_managercode,:f_sitelink,:f_action);end;")
conn.DbExecuteSQL("commit")
response.write str&"---"&f_sitelink&"---"&f_action&"<br>"
conn.Parameters.Remove "f_managercode"
conn.Parameters.Remove "f_sitelink"
conn.Parameters.Remove "f_action"

tempRs.movenext
loop

为什么每次结果只写入一条数据,是第一次调用的,每次循环是都有调用过程,可只有第一次调用时有写入?这是为什么?
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
renfox99 2004-03-31
  • 打赏
  • 举报
回复
up
hqz010 2004-01-09
  • 打赏
  • 举报
回复
在运行这一段时没有出现错误啊?
xieyj 2004-01-09
  • 打赏
  • 举报
回复

使用异常处理,捕捉错误信息,具体方法如下:
On Error Resume Next '过滤错误
If Err.Number <> 0 Then '发现错误
Response.Write "发现错误,错误信息是:" & Err.Description '写出错误信息
Response.End '结束运行
End If
hqz010 2004-01-09
  • 打赏
  • 举报
回复
我发觉是存储过程有问题:
CREATE OR REPLACE PROCEDURE p_item_siteincept(f_managercode in varchar2,f_sitelink in number,f_action in number)
AS
hr number;
myID number;
begin
if f_action=1 then
select count(*) into hr from Tab_Item_siteincept where f_managercode=f_managercode and f_sitelink=f_sitelink; -----//这句起不到效果,会有错误吗?
if hr<=0 then
select public_id.nextval into myID from dual;
insert into Tab_Item_siteincept(f_id,f_managercode,f_sitelink) values(myid,f_managercode,f_sitelink);
end if;
else
delete from tab_Item_siteincept where f_managercode=f_managercode and f_sitelink=f_sitelink;
end if;
end;

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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