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 :

[sql server] appel d'une procedure suivi d'un select > er


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut [sql server] appel d'une procedure suivi d'un select > er
    Bonjour, n ayant pu trouver nulle part d articles parlant du sujet, je me permet de poster ma petite question sur le forum en esperant que qqun puisse m aider.

    mon probleme est le suivant:

    Site web ASP
    Base de donnees sql server

    J'utilise pas mal de procedures stockes sur le serveur sql via mes scripts asp.
    Ces procedures me renvoient des valeurs que je recupere ensuite par un select.

    sql = " exec procedure "
    sql = sql & " select les retours de la procedure"

    set rs = OBJdbConnection.execute(sql)


    jusque la tout va bien dans le meilleur des mondes

    j utilisais une connexion via ODBC et tout se petit monde ronronnait parfaitement.

    A present je suis oblige d'utiliser une connexion dns less et c'est la que les problemes arrivent

    pour toutes mes requetes classiques, pas de probleme mais quand je tombe sur mes gestions de procedures, j ai le magnifique message :
    ADODB.Recordset error '800a0cc1'

    Item cannot be found in the collection corresponding to the requested name or ordinal.
    ce qui est embettant

    d apres ce que je comprend, se brave execute me ressort une valeur des l appel de la procedure et se moque totalement du select qui suit :'(

    apres qqs heures de recherche je suis tombe sur ce site : site

    ou il nous dit de faire un : "Set Nocount on" mais cela na pas solutionne mon probleme





    voici le code de ma connextion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
    OBJdbConnection.ConnectionString = "Provider=SQLOLEDB.1;" & _
    "Persist Security Info=False;" & _
    "Network Library=DBMSSOCN;" & _
    "Data Source=" & serverIP & "," & serverPORT & ";" & _
    "Initial Catalog=" & serverDB & ";" & _
    "User ID=" & serverLOGIN & ";" & _
    "Password=" & serverPASSWORD & ";" & _
    "Connect Timeout=5;Pooling=False"
    Call OBJdbConnection.Open()

    merci d avance a tout ceux qui pourront eclairer ma lanterne

  2. #2
    Membre actif Avatar de roots_man
    Inscrit en
    Août 2004
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 328
    Points : 282
    Points
    282
    Par défaut
    Item cannot be found in the collection corresponding to the requested name or ordinal.
    Ben ca, ca veut dire k'il ne trouve pas un champs de la selection faite.

    Dans ta requete, controle si tous les champs existe dans la table.

    je m'explique. Par exemple, j'ai une table(Membres) avec 3 champs(Id, Nom, Prenom).

    Je fait un select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%sql = "Select * From Membres"
    set rs = conn.execute(sql)%>
    et ensuite plus bas j'ecrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%=rs("Date_naissance")%>
    A ce moment-la il te met cette erreur, car le champs Date_naissance n'existe pas dans la table..

    Redis-nous comment.
    powder skiing is not a crime

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour et merci pour ton aide

    malheureusement tous les chams sont bien correcte


    Pour etre sur de cela, j ai fait un petit test (sans retour de champs) et l erreur est identique

    voici mon test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'sql = " select getdate() as maintenant "
    'sql = sql & " select getdate() as present "
     
     
    RS = OBJdbConnection.Execute(SQL)
     
    'response.write(rs("maintenant") & " maintenant")
    'response.write(rs("present") & " present")

    "maintenant" s affiche mais "present" me donne le message d erreur

    le probleme c est qu il ne supporte pas la presence de 2 "retour" d informations dans une meme requete (avec mon dns less) (mais avec une connec odbc tout fonctionne et ce qui mefait )

  4. #4
    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 montou
    Bonjour et merci pour ton aide

    malheureusement tous les chams sont bien correcte


    Pour etre sur de cela, j ai fait un petit test (sans retour de champs) et l erreur est identique

    voici mon test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'sql = " select getdate() as maintenant "
    'sql = sql & " select getdate() as present "
     
     
    RS = OBJdbConnection.Execute(SQL)
     
    'response.write(rs("maintenant") & " maintenant")
    'response.write(rs("present") & " present")

    "maintenant" s affiche mais "present" me donne le message d erreur

    le probleme c est qu il ne supporte pas la presence de 2 "retour" d informations dans une meme requete (avec mon dns less) (mais avec une connec odbc tout fonctionne et ce qui mefait )
    et si tu écris ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'sql = " select getdate() as maintenant , getdate() as present "
     
     
    RS = OBJdbConnection.Execute(SQL)
     
    'response.write(rs("maintenant") & " maintenant")
    'response.write(rs("present") & " present")
    bon j'imagine que ça résoud pas ton problème précédent
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par fredoche
    Citation Envoyé par montou
    Bonjour et merci pour ton aide

    malheureusement tous les chams sont bien correcte


    Pour etre sur de cela, j ai fait un petit test (sans retour de champs) et l erreur est identique

    voici mon test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'sql = " select getdate() as maintenant "
    'sql = sql & " select getdate() as present "
     
     
    RS = OBJdbConnection.Execute(SQL)
     
    'response.write(rs("maintenant") & " maintenant")
    'response.write(rs("present") & " present")

    "maintenant" s affiche mais "present" me donne le message d erreur

    le probleme c est qu il ne supporte pas la presence de 2 "retour" d informations dans une meme requete (avec mon dns less) (mais avec une connec odbc tout fonctionne et ce qui mefait )
    et si tu écris ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'sql = " select getdate() as maintenant , getdate() as present "
     
     
    RS = OBJdbConnection.Execute(SQL)
     
    'response.write(rs("maintenant") & " maintenant")
    'response.write(rs("present") & " present")
    bon j'imagine que ça résoud pas ton problème précédent
    en effet cela fonctionne mais en effet cela n aide pas mon probleme

    Le probleme principal est bien le suivant :

    un procedure renvoyant des output suivi d un select pour recuperer ces output, sans odbc et le tout dans le meme query a executer, asp ne reussi pas a recuperer les donnees du select
    il s arrete sagement au retour de l execution (qui m informe si tout c est bien passe )

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    J'ai pas bien compris, tu peux poster l'appel de la proc et ce que tu fais après?
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    oky la voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    sql = 		"declare @stat int, @o_tcsta varchar(32), @o_tctourne varchar(32), @o_tcchauff varchar(32), @o_tcage varchar(32), @o_tlcodage varchar(32), @o_tbur bit " & vbcrlf
    sql = sql & 	"exec @stat = "
    sql = sql &		"sp_cogiwide_routing 1, '" & session("Cpayori") & "', '" & session("InpCpOri") & "','','', "
    sql = sql &		"'', " & session("Lcodbur") & ", '" & session("CburAdm") & "', '" & session("iQualifAgePri") & "', "
    sql = sql &		 "'" & session("ComProdui") & "', '" & session("PoiCalPri") & "',0, '0',"
    sql = sql &		"@o_tcsta output, @o_tctourne output, @o_tcchauff output, @o_tcage output, @o_tlcodage output, @o_tbur output " & VBcrlf
    sql = sql &	" select 'return'=@stat, 'tcsta'=@o_tcsta, 'tcchauff'=@o_tcchauff, 'tctourne'=@o_tctourne, 'tcage'=@o_tcage, 'tbur'=@o_tbur "
    sql = sql &	" "
     
    RS = OBJdbConnection.Execute(SQL)
    ce que j en fais apres (plein de petit cas of)
    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
    select case rs("return")
    			case 0
    				session("Cstaori") = rs("tcsta")
    				session("cchauffori") = rs("tcchauff")
    				session("ctourneori") = rs("tctourne")
    				session("cageori") = rs("tcage")
    				if rs("tbur") = true then
    					tburori = 1
    				else
    					tburori = 0
    				end if
    			'message d'erreur
    			case 1
    				session("lmes") = "Erreur Routing"
    				response.Redirect("login.asp")
     
    		end select


    pour reprendre simplement et le plus claireement le probleme :
    appel de procedure suivi d un select, dans la meme requete et snas utilise d odbc, me renvoi le message d erreur cite dans le premier post

  8. #8
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    C'est ce qu'il me semblait mais je ne dis pas que j'ai la réponse loin de là. Pourquoi déclares tes variables à l'extérieure de la procédure et de même que le select? Tu as besoin de ta procédure ailleurs et autrement?
    Si la réponse est non essaye donc de tout faire à l'intérieure de la procédure.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  9. #9
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    les variables sont declarees car elles sont utilisees comme output de ma procedure.

    je ne pense pas qu il est permi en ms sql de laisser les outputs se generer tout seul (je peux me tromper, je ne suis pas un expert des technologies microsoft)

  10. #10
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Ah si si tu peux
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  11. #11
    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
    Plutot que d'utiliser la methode execute de connection tu as pensé à l'objet command de adodb ? Vu ce que tu veux faire ce sera nettement plus adapté

    Sinon même réponse que FC, intègre ton select à ta PS
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  12. #12
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    malheureusement : impossible d y toucher a cette SP

    je vais tester le "command"

  13. #13
    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
    tiens montou j'ai retouvé ça dans un de mes codes qui se présente un peu sur la même situation (un update puis un select dans le même execute) , tu peux toujours essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RS = RS.NextRecordSet
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  14. #14
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par fredoche
    tiens montou j'ai retouvé ça dans un de mes codes qui se présente un peu sur la même situation (un update puis un select dans le même execute) , tu peux toujours essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RS = RS.NextRecordSet

    fredoche mon sauveur !!!!!!

    grace a ca ca fonctionne mais j ai du le couple avec le Set Nocount on

    et grace a cela je comprend pq j avais ces probleme
    par defaut, une procedure ne provoque pas ce genre de probleme mais celle que je dois utiliser fait un print lors de sont execution

    c est lui qui met le boxon et fait foncer l asp dans le mur.

    mais a present, la page de test fonctionne grace a nextrecordset, je vais l appliquer a tous le projet et voir ce qu il me donne


    mille fois merci

  15. #15
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Tag Résolu s'il te plaît
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  16. #16
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par franculo_caoulene
    Tag Résolu s'il te plaît
    j attendais d avoir fait mes gros test

    (non je ne vais pas avouer que j ai oublie )

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

Discussions similaires

  1. Appel d'une procedure avec deux Database...
    Par smasterfr dans le forum Langage SQL
    Réponses: 6
    Dernier message: 28/06/2005, 09h53
  2. [Sql server]Taille d'une requete
    Par kashue dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/04/2005, 16h05
  3. [PL/SQL] appel d'une procedure dans une procedure
    Par Ilhan_ dans le forum Oracle
    Réponses: 9
    Dernier message: 28/01/2005, 10h30
  4. Réponses: 4
    Dernier message: 28/12/2003, 15h50
  5. Appel a une procedure stockée en vba
    Par The_Nail dans le forum VBA Access
    Réponses: 36
    Dernier message: 01/04/2003, 16h44

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