空心雨毕业论文网提供毕业论文、职称论文、硕士论文、计算机论文等的代写服务,同时还提供各种期刊论文的发表。如果你有需要,请联系我们QQ:5599630;电话:13350726595;E-mail:singlehearted@vip.qq.com
RSS
 

使用OLE DB和ADO调用返回记录集的Oracle存储过程(3)

来源:okxy168 作者:

4.3 调用存储过程的格式
调用返回记录集存储过程之前,应将Command对象的 CommandType 属性指定SQL类型以优化查询性能,即CommandType 属性值设为AdCmdText。
使用 Command对象的CommandText 属性定义调用存储过程的命令。当使用Command对象执行Oracle返回记录集存储过程时,须以odbc转义符调用格式来调用存储过程,例如:{call credit_account(?,?)}。在这种格式中,传入和传出参数都用问号“?”来表示。
4.4返回记录集
可使用Command对象的 Execute 方法调用Oracle返回记录集的存储过程,并在适当的时候将结果记录集返回给 Recordset对象。该对象可以存储一个或多个结果记录集。当存储多个记录集时,可以用Recordset对象的NextRecordSet属性获得下一个记录集。
下面给出在ASP中调用返回存储过程或函数的示例程序:
<%@ Language=VBScript %>
<!--#include file="adovbs.inc"-->
<%
'Connection 对象代表了打开的、与数据源的连接。
set Con=server.CreateObject("ADODB.Connection")
set Rst1 =server.CreateObject("ADODB.Recordset")
set Rst2=server.CreateObject("ADODB.Recordset")
set Cmd =server.CreateObject("ADODB.Command")
set Prm1 =server.CreateObject("ADODB.Parameter")
set Prm2 =server.CreateObject("ADODB.Parameter")
Con.Provider = "OraOLEDB.Oracle" '设置OLE DB提供者
'设置数据库连接字符串,test是数据库服务名
Con.ConnectionString = "Data Source=TEST;" & _
"User ID=scott;Password=tiger;PLSQLRSet=1"
'调用返回记录集的存储过程,PLSQLRSet指定为1
Con.Open
'创建Command对象到目标数据源的连接
Cmd.ActiveConnection = Con
cmd.CommandType=adcmdtext
'虽然Employees.GetEmpRecords()有四个参数,
'但只有需要设定两个参数
'因为REF CURSOR参数由OLE DB连接提供者自动设定。
Set Prm1 = Cmd.CreateParameter("Prm1", adSmallInt, adParamInput, , 30) '创建一个输入参数,对应于indeptno
Cmd.Parameters.Append Prm1 '将参数添加到参数集合中
Set Prm2 = Cmd.CreateParameter("Prm2", adSmallInt, adParamOutput) '创建一个输出参数,对应于p_errorcode
Cmd.Parameters.Append Prm2
'调用返回记录集的存储过程必须使用odbc的转义符调用格式。
Cmd.CommandText = "{CALL Employees.GetEmpRecords(?, ?)}"
'GetEmpRecords存储过程返回两个记录集,获得第一个记录集
Set Rst1 = Cmd.Execute %>
<TABLE border = 1>
<%
Do while (Not rst1.eof) %>
<tr>
<% For Index=0 to (rst1.fields.count-1) %>
<TD VAlign=top><% = rst1(Index)%></TD>
<% Next %>
</tr>
<% rst1.MoveNext
Loop '显示第一个记录集
%>
</TABLE>
<%'获得GetEmpRecords存储过程返回的第二个记录集
Set Rst2 = Rst1.NextRecordset
'在此可加入显示第二个记录集的代码
Prm1.Value = 7369 '该参数对应于存储函数的inempno
Prm2.Value = 0 '该参数对应于存储函数的p_errorcode
'调用返回记录集的存储函数
Cmd.CommandText = "{CALL Employees.GetDept(?, ?)}"
'获得GetDept存储函数返回的记录集
Set Rst2 = Cmd.Execute
Rst1.Close
Rst2.Close
set rst1=nothing
set rst2=nothing
con.close
set con=nothing
%>
<P> </P>
</BODY>
</HTML>
5 小结
在应用程序中,使用OLE DB和ADO访问返回记录集的存储过程,OLE DB服务者可以高效地将数据库端的多行记录集返回给ADO应用程序。在ADO应用程序中,使用Command对象可以传递输入或输出参数给存储过程,并调用存储过程以获得多行记录集。


1.(美)William G.Page, Jr.等著,王磊等译,《Oracle 8/8i开发使用手册》,机械出版社,北京,2000年3月,451-456页。

阅读更多内容<<上一页 · 1 · 2 · 3 · 4 · 下一页>>
4
最新评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
      本站是由一个众多学科的博士群体组建而成,主要创办者为成都各重点高校博士。本论文网内理工科写手均为博士,文科类写手大部分为博士,且领域涵盖广泛,写作势力强大,若有部分专业,没有相关的写手,我们给你寻找合适的写手! 依托强大的人力资源,我们本着诚心交流的宗旨,专门为您排解写作上的难题。从在科研及实践工作中稳扎稳打的经历,我们具备了研究问题,解决问题的能力。论文写作和论文发表,作为教育体系的一个重要环节,我们确实有能力给您解决好问题,正所谓,真金不怕火来炼,请相信我们的势力,没有把握的事,我们不会做!
      本站受多家期刊委托,其中包括国家级中文核心期刊目录正刊,CSSCI目录正刊,增刊,省级以上公开出版的优秀期刊正刊,本站负责论文推荐发表,加急1个月即可发表。本站负责论文发表,不发表承诺退款!!目前主要负责法律,管理,经济,理工,农学,行政,医学,艺术,英语等类论文发表论文代写。详细期刊目录见本站相关内容。
赞助商链接