IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

[ASP] [VBscript] [ORACLE] appel d'une procédure stockée oracle en asp


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 81
    Points : 51
    Points
    51
    Par défaut [ASP] [VBscript] [ORACLE] appel d'une procédure stockée oracle en asp
    bonjour,
    Je suis tout débutant en la matière et je cherche à faire quelque chose de simple
    Il s'agit pour moi d'appeler une procédure stockée Oracle dont voici la signature
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE OR REPLACE PROCEDURE ps_MaProcStock (id NUMBER, rowAffected out NUMBER) IS
     ...
    à partir d'une page ASP
    j'ai choisi d'écrire cela en VBscript (bien que le reste de mon programme utilise du javascript mais l'exemple que j'ai trouvé était écrit en VBscript)
    et d'utiliser ADODB (car tout le reste de mon programme l'utilise)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    		Set PsMaProcStock = Server.CreateObject("ADODB.Command")
    		dim RowAffectedInput
    		RowAffectedInput = 1
    		dim RowAffectedOutput
    		RowAffectedOutput = 0
    		const adNumeric = &H0083
    		const adParamInput = &H0001
    		const adParamReturnValue = &H0004
    		PsMaProcStock.activeConnection = objConnexion
    		PsMaProcStock.commandType = &H0004 'adCmdStoredProc
    		PsMaProcStock.commandText = "PS_MaProcStock"
    '		PsMaProcStock.parameters.refresh
    '		PsMaProcStock.parameters.clear()
    		PsMaProcStock.parameters.append PsMaProcStock.createparameter("id", adNumeric, adParamInput)
    		PsMaProcStock.parameters(0).value = request("id")
    		PsMaProcStock.parameters.append PsReal.createparameter("rowAffected", adNumeric, adParamReturnValue)
    		set RowAffectedOutput = PsReal.execute
    		PsMaProcStock.activeConnection = nothing
    et j'ai une erreur en retour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Microsoft OLE DB Provider for Oracle   erreur '80040e14' ORA-06550: Ligne 1, colonne 60 : PLS-00103: Symbole ">" rencontré à la place d'un des symboles suivants : . ( ) , * @ % & = - + < / > at in is mod remainder not rem <exposant (**)> <> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_ between || multiset member SUBMULTISET_
    Lorsque je teste un procédure stockée sans paramètre, cela fonctionne
    mon programme envoie déjà de nombreuse instructions INSERT ou UPDATE qui fonctionnent très bien

    Ce que j'en comprends, c'est que je ne comprends pas comment il faut passer les paramètres d'entrée et de sortie à la collection des paramètres
    je ne sais pas comment aller chercher les bonnes valeurs pour mapper les constantes ASP adNumeric adParamInput et adParamReturnValue
    et je crois mélanger les genres javascript et VBscript (je crois me souvenir d'avoir récupérré ces constantes sur w2school)

    Pourriez vous m'indiquer où trouver cela ? ou m'éclairer sur mes erreurs ?
    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    En tournant en rond, j'ai fini par miraculeusement m'en sortir en écrivant une log sur le serveur
    et là, ca fontionne
    mais jusqu'à quand ? (meme les miracles ne sont pas certains ...)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 95
    Points : 133
    Points
    133
    Par défaut
    Bonsoir,
    je n'ai pas compris ni le problème ni la solution ;-))))

    Mais pour les paramètres de procédure stockée, je ne fais pas appel aux noms symboliques mais aux valeurs directes
    (on les trouve effectivement entre autre ici : http://www.w3schools.com/ado/met_com...p#datatypeenum)

    Pour illustration, voici un exemple de code que je pratique (le sgbd est MYSQL, d'où les variables en @) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    set ObjCD=Server.CreateObject("ADODB.command")
    set objCD.activeconnection=conn
    objCD.CommandType = 4
    objCD.commandtext="p2_RAZlot"
     
    ' création et ajout de paramètres
    set pm=objCD.createparameter("@lot",131,1,10,request("lot"))	
    pm.precision=10
    pm.numericscale=0
    objCD.parameters.append pm
     
    set pm=objCD.createparameter("@annee",131,1,10,request("annee"))
    pm.precision=10
    pm.numericscale=0
    objCD.parameters.append pm
     
    ' execution (sans retour de résultat ici)
     
    objCD.execute

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 81
    Points : 51
    Points
    51
    Par défaut problème résolu
    merci pour votre réponse,
    la seule chose à retenir est le lien w3school http://www.w3schools.com/ado/ déjà mentionné pour retrouver les valeurs numériques

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    Citation Envoyé par carreau Voir le message

    Ce que j'en comprends, c'est que je ne comprends pas comment il faut passer les paramètres d'entrée et de sortie à la collection des paramètres
    je ne sais pas comment aller chercher les bonnes valeurs pour mapper les constantes ASP adNumeric adParamInput et adParamReturnValue
    et je crois mélanger les genres javascript et VBscript (je crois me souvenir d'avoir récupérré ces constantes sur w2school)

    Pourriez vous m'indiquer où trouver cela ? ou m'éclairer sur mes erreurs ?
    Merci d'avance
    Toutes ces constantes sont définies dans un fichier qui se nomme "adovbs.inc", que l'on peut inclure dans un script asp.
    Une recherche google vous permettra d'en savoir plus sur ce fichier
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 81
    Points : 51
    Points
    51
    Par défaut différentes version du fichier adovbs.inc et constantes absentes ou valeurs contradictoires
    bonjour,

    Merci pour votre aide, j'ai inclu dans mon projet une version 1996 du fichier adovbs.inc
    jusqu'au moment de m'apercevoir qu'il existe une version corrigée 1998 avec des constantes dont j'avais besoin

    Mais cette version n'inclue toujours pas certaines constantes mentionnées sur w3school.com par exemple ou dans les doc présentes sur developpez.com (Programmation d'un site Web côté Serveur avec ASP et ADO : le modèle ADO - ADO.pdf)
    Par exemple la constantes adExecuteRecord n'existe pas dans le fichier adovbs.inc et sa valeur (512 ou &H0000200) vient en contradiction avec la constante adCmdTableDirect (options qui pourraient etre combinées selon l'aide disponible sur w3school.com)

    Si j'ai bien suivi, les constantes connues par ADO ne devrait pas entrer en conflit avec celles d' ADO.NET (doc sur developpez.com de J-M Rabilloud Utiliser-ADONET-VB.pdf)
    Mais alors voilà : quel fichier adovbs.inc choisir ? ou trouver des valeurs constantes correctes pour ADO ?

    Merci à vous et bonnes fête du 11 novembre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/09/2009, 12h39
  2. appel d'une procédure stocké en asp.net
    Par malcom x dans le forum Accès aux données
    Réponses: 17
    Dernier message: 24/04/2008, 17h23
  3. Réponses: 6
    Dernier message: 19/07/2007, 16h48
  4. Réponses: 3
    Dernier message: 10/04/2007, 13h53
  5. Appel d'une procédure stockée par un vbscript
    Par NicoNours dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/10/2004, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo