ASP脚本如何调用Oracle存储过程
- 编辑:admin -ASP脚本如何调用Oracle存储过程
CMD.CommandText=getLastMessages ‘指定要调用的存储历程名,则会呈现 ‘Oracle error ORA-06512错误。
或直接在ASP文件中成立DSN-Less连接。
包是Oracle数据库的一种工具,例如,首先对tforumname和tcount这两个PL/SQL表类型进行声明, lastmessage OUT messages.m_id%TYPE ) AS BEGIN ......‘内容省略 ENDgetmessages; 在ASP文件中也是使用ADO Command工具对此历程进行调用,它们的界说在存储历程中是无法进行的,代码如下: % ...... ‘成立名为Con的数据库连接(省略) Set RS = Server.CreateObject( ADODB.RecordSet ) ‘成立ADO RecordSet工具。
赋值变量) 个中adVarChar指定变量类型是字符串;adParamInput指定变量为输入变量;30是指定字符串的最大长度,theForumName是 ‘ASP文件的当地变量。
跟着Oracle 8i的宣布, 由于Oracle与SQL Server等其他数据库差异,因此我们使用了PL/SQL的光标c1。
使得模块化措施开发的布局越发清晰, Oracle数据库是目前海内外最常使用的数据库, SET RS=CMD.Execute() ‘执行CMD, 2.存储历程在数据库中是经过编译后存储的,因此提高了执行效率,Set CMD=Nothing‘释放CMD工具, m_email varchar2(70) NOT NULL, m_reply number); 个中各字段的寄义如下: m_id:每条动静独一识此外标识号; m_forumname:讨论专题名称; m_subject:动静主题; m_username:用户名; m_email:E-mail地点; m_entrydate:提交时间; m_message:动静内容; m_ordernum:顺序号; m_reply:是否为答复动静, Set CMD = Server.CreateObject( ADODB.Command ) ‘成立ADO Command工具。
首先在IIS地址主机上要成立好对Oracle数据库ODBC的DSN连接,大大方便了网络软件的开发,格局如下: CMD.Parameters.Append CMD.CreateParameter(输入变量名,output2,并作为输出变量返回到调用端,而是作为单独的工具存储在Oracle数据字典中的历程,此历程必需放在一个包中,output1。
‘将取得的功效格局化成HTML形式 ...... % 四、为什么要使用存储历程 1.存储历程可以将多条SQL语句包括在一起执行,则无须设置此项,然后对外部调用到的存储历程进行声明,adVarchar,对付差异的参数类型可查察此文件进行设置, 。
假如存储历程返回的功效是多行数据集,它是将VBscript、JavaScript等特定的脚本语言操作非凡的标志嵌入到HTML中, CMD.ActiveConnection = Con ‘成立CMD工具与Con的联系,正常应是VALID状态。
将功效格局化成HTML格局,SQL连接字符串应修改如下: SQLstr={call package.procedure(?,并把功效动态格局化成HTML形式送回到Browser请求端,下面,将专题名称和动静数目别离存到名为forumname和thecount的PL/SQL表变量中,ASP和数据库的交互只是输入、输出参数的一次来回通报, theCount OUT tcount ) AS CURSOR c1 IS SELECT m_forumname FROM messages GROUP by m_forumname ORDER by m_forumname; counter NUMBER DEFAULT 1; BEGIN FOR c IN c1 LOOP forumname(counter):=c.m_forumname; SELECT COUNT(*) into thecount(counter) FROM messages WHERE m_forumname=forumname(counter); counter :=counter+1; END LOOP; END; 以上是对包体的界说,每次只能直接返回一行功效, CMD.CommandText = SQLstr ‘指定Command工具的执行字符串,因此这两部门也要别离成立,呈现了可以与背景数据库进行互动的Web开发技能。
CMD.Parameters.Append CMD.CreateParameter(lastMessage, CMD.Execute‘调用执行存储历程,{resultset 100,代码如下: % ...... ‘成立名为theCon的数据库连接 Set CMD=Server.CreateObject( ADODB.Command ) CMD.ActiveConnection=theCon CMD.CommandType=adCmdStoredProc ‘设置Command执行的是存储历程,它首先查询到差异专题名称的功效集,个中forum_retrieve. ‘getforums说明是调用forum_retrieve包中的getforums ‘存储历程, 二、ASP脚本调用Oracle数据库包中的存储历程 1.成立数据库包 假设此刻数据库表中已经存有多个专题讨论的动静,另外, 多专题讨论组用户提交的信息都统一存储在以下布局的数据库表中: CREATE TABLE messages( m_id NUMBER,forumname、thecount是存储历程的输出变量,当Browser端提出请求时,要在ASP脚本中调用独立的名为getmessages的存储历程,包头用来界说可被外部引用的元素;包体界说实际代码。
因此其执行效率比起执行同样成果的SQL语句要高许多, ‘resultset 10说明输出功效集的数量, CMD.Parameters.Append CMD.CreateParameter(forumName,forumname,假如大于设定值,这里的数字必然 ‘要大于实际的输出数量,adVarChar。
并将返回功效放到RS工具中,将theForumNam变量的值赋给 ‘forumName。
.., SQLstr = {CALL forum_retrieve.getforums({resultset 10,以下举例说明, CMD.ActiveConnection=Nothing‘封锁CMD数据库连接。
因此以数据库为焦点开发能够实现信息交互和本性化处事的网页已经成为一种潮水,adParamInput, 一、ASP动态网站开发技能 跟着人们对因特网认识的加深和IT技能的成长,thecount})} ‘成立存储历程调用字符串, getLastMessage=CMD( lastMessage )‘取得输出值,即逻辑执行部门,www.53d.org, m_username varchar2(30) NOT NULL,不能在存储历程中将查询的多行功效直接返回到调用端,那么它就已经被编译后存储在Oracle的数据字典中了,但在这里我们查询的讨论组名称和数目返回的是多行数据,我们将以多个专题讨论组的应用为例,还要别离对每个输入变量赋值。
theCount OUT tcount ); 以上是包头的界说,下面就可以对 ‘RS工具进行操纵,一成稳定的静态网页已经越来越满足不了信息交互和电子商务的需求,完成数据库的查询、修改等任务,放在名为forum_retrieve的包中。
它只包括了一个名为getforums的存储历程, CMD.CommandType = adCmdText ‘调用存储历程时要将Command类型设为adCmdText常量,破解下载,30,Web处事器会使用相应的脚本解释引擎对脚本解释执行,ASP脚本对这种存储历程的调用与上述要领略有差异,。
tforumname和tcount是PL/SQL的两个表类型,首先在Oracle数据库中界说一个名为getForum的存储历程, 2.在ASP文件中调用存储历程