Pour le géant Oracle, Asp est vraiment étendu à utiliser. Surtout lorsqu'il s'agit de renvoyer un ensemble de résultats (Recordset), cela pose des difficultés à de nombreuses personnes. Après exploration et pratique, j'ai écrit ma propre solution ci-dessous :
illustrer:
La version de mon client Oracle est Oracle 9i Lors de l'installation du client, vous ne pouvez pas utiliser l'installation par défaut. Vous devez le personnaliser, puis sélectionner tout le contenu lié à OLEDB et l'installer. Sinon, vous ne pourrez pas le trouver lorsque vous le ferez. accédez au fournisseur ci-dessous.
Copiez le code comme suit :
<%@Language=VBSCRIPT CodePage=936 LCID=2052%>
<%Option explicite%>
<!-- #include file=../adovbs.inc -->
<%
Dim cnOra
Fonction Connect2OracleServer
Dim conStr
conStr = Provider=MSDAORA.Oracle;Data Source=xx;User Id=?;Password=?
Définir cnOra = Server.CreateObject (ADODB.Connection)
cnOra.CursorLocation = adUseClient '=3
En cas d'erreur, reprendre ensuite
cnOra.Open conStr
Connect2OracleServer = (Err.Number = 0)
Fonction de fin
Sous-déconnexionFromOracleServer
Si ce n'est pas le cas, cnOra n'est rien alors
Si cnOra.State = 1 Alors
cnOra.Fermer
Fin si
Définir cnOra = Rien
Fin si
Fin du sous-marin
Sous-écho (str)
Réponse.Write(str)
Fin du sous-marin
Sous-résultat de sortie
Dim cmdOra
Dimrs
Définir cmdOra = Server.CreateObject(ADODB.Command)
Avec cmdOra
.CommandType = adCmdText '=1
.CommandText = {appeler PKG_TEST.GetItem(?,?)}
.Parameters.Append cmdOra.CreateParameter(p1, adNumeric, adParamInput, 10, 1)
.Parameters.Append cmdOra.CreateParameter(p2, adVarChar, adParamInput, 10, xx)
.ActiveConnection = cnOra
Définir rs = cmdOra.Execute
Si ce n'est pas rs.Eof alors
Bien que ce ne soit pas rs.Eof
Échos rs(0)
Écho --
Échos rs(1)
Écho <br>
rs.MoveNext
Wende
rs.Fermer
Fin si
Setrs=Rien
Définir cmdOra = Rien
Terminer par
DéconnecterFromOracleServer
Fin du sous-marin
Si Connect2OracleServer Alors
Résultat de sortie
Autre
Réponse.Write (Err.Description)
Fin si
%>
Ce qui suit est le script SQL d'Oracle
--------------------Script SQL--------------- ---- ----------------------
--Build package---------------------------------
Copiez le code comme suit :
Créer ou remplacer le package PKG_TEST
EST
TYPE rfcTest EST REF CURSEUR ;
PROCÉDURE OBTENIR UN ARTICLE
( p1 EN NOMBRE,
p2 DANS VARCHAR2,
p3 OUT rfcTest
);
FIN - Spécification du package PKG_TEST
-------------------------------------------------- -
--Corps du package de construction----------------------------------
Créer ou remplacer le corps du package PKG_TEST
EST
PROCÉDURE OBTENIR UN ARTICLE
( p1 EN NOMBRE,
p2 DANS VARCHAR2,
p3 OUT rfcTest
)
EST
COMMENCER
OUVRIR p3 POUR
SELECT * FROM tablename WHERE id = p1 AND name=p2 AND rownum < 10;
EXCEPTION
QUAND LES AUTRES ALORS
NUL ;
FIN;
FIN - Corps du package PKG_TEST