asp中关于调用oracle存储过程的问题!!!
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
为什么每次结果只写入一条数据,是第一次调用的,每次循环是都有调用过程,可只有第一次调用时有写入?这是为什么?