ASP调用Oracle存储过程,高手指点!

zhaiyf 2005-04-27 11:04:26
我发了好几个区,分少可以分开给。

'这部分连接Oracle数据库的,我省略不写了。
Dim strsql as string
Set rs1 = New ADODB.Recordset
tempsql = "select * from tc_mainmenu"
strsql = "{execute WEBDIVPAGE.WEBDIVPAGE({5, tempsql, 20, pcount,rs1})}" '\\\\这句的调用我是按照网上一篇文章写的,好象不对,但具体要怎么写呢?Oracle帮助文件也查不到啊。我把记录集rs1做为参数输入对吗?因为我的存储过程要返回记录集的。网上原文是resultset 90000而不是rs1,我试过了,也不行。

Set objcomm1 = New ADODB.Command
objcomm1.ActiveConnection = objconn_ora
objcomm1.CommandType = adCmdStoredProc
objcomm1.CommandText = strsql
Set rs1 = objcomm1.Execute '\\\\这里执行不了。

MsgBox rs1.RecordCount
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaiyf 2005-04-28
  • 打赏
  • 举报
回复
UP!
zhaiyf 2005-04-28
  • 打赏
  • 举报
回复
UP!
zhaiyf 2005-04-27
  • 打赏
  • 举报
回复
这跟存储过程有什么关系呢?仔细看看问题。
Kurt2Kurt 2005-04-27
  • 打赏
  • 举报
回复
//下面的语句你可以放在单独的一个文件中(如connv.asp)
strdatabase = "Provider=MSDAORA.1;Password=密码;User ID=用户ID;Data Source=数据库"

//注意把上面的connv.asp文件包括进来

//建立数据库连接
set cn = Server.CreateObject("ADODB.Connection")
//打开数据库连接
cn.Open strdatabase
//建立并打开数据库记录集
set rs1= Server.CreateObject("ADODB.Recordset")
strsql = "select * FROM tc_mainmenu"
rs1.Open strsql,cn,1,1
…………

上面的方法你试试
zhaiyf 2005-04-27
  • 打赏
  • 举报
回复
存储过程:
CREATE OR REPLACE PACKAGE "YKT"."WEBDIVPAGE" is

TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集

PROCEDURE WebPagination(
Pindex in number, --分页索引
Psql in varchar2, --产生dataset的sql语句
Psize in number, --页面大小
Pcount out number, --返回分页总数
v_cur out type_cur --返回当前页数据记录
);

procedure WebPageRecordsCount(
Psqlcount in varchar2, --产生dataset的sql语句
Prcount out number --返回记录总数
);

end WebDivPage;

CREATE OR REPLACE PACKAGE BODY "YKT"."WEBDIVPAGE" is
PROCEDURE WebPagination(
Pindex in number,
Psql in varchar2,
Psize in number,
Pcount out number,
v_cur out type_cur
)
AS

v_sql VARCHAR2(1000);
v_sql1 VARCHAR2(1000);
v_count number;
v_Plow number;
v_Phei number;
Begin
v_sql := 'select count(*) from (' || Psql || ')';
execute immediate v_sql into v_count;
Pcount := ceil(v_count/Psize);
v_Phei := Pindex * Psize + Psize;
v_Plow := v_Phei - Psize + 1;
v_sql1 := 'select rownum rn,t.* from cd_ssxl t' ;
v_sql := 'select * from (' || v_sql1 || ') where rn between ' || v_Plow || ' and ' || v_Phei ;

open v_cur for v_sql;

End WebPagination;

procedure WebPageRecordsCount(
Psqlcount in varchar2,
Prcount out number
)
as

v_sql varchar2(1000);
v_prcount number;

begin

v_sql := 'select count(*) from (' || Psqlcount || ')';
execute immediate v_sql into v_prcount;
Prcount := v_prcount; --返回记录总数
end WebPageRecordsCount;

end WebDivPage;

28,406

社区成员

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

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