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 :

Problème avec ADODB.Recordset


Sujet :

ASP

  1. #1
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut Problème avec ADODB.Recordset
    Bonjour à tous !
    Je suis nouveau dans le développement ASP, et j'ai scrupuleusement suivi la FAQ et les tutoriaux pour me connecter à une bdd et récupérer les résultats d'une requète SQL mais sans résultat
    Alors je m'explique.
    Je possède une base sous SQL Server 2000 avec une base se nommant TEST et dedans une table INTERVENANT.
    La table INTERVENANT possède deux champs :
    Un entier --> INT_ID
    Varchar --> INT_NOM

    Le problème est quand je souhaite effectuer une requète pour récupérer le nombre de champs, ma page se "fige" si je puis dire.
    Voila mon code :

    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
     
    dim objConnect
    dim objRecordset
     
    set objConnect = Server.CreateObject("ADODB.Connection")
    connstring = "driver={SQL Server};server=localhost;database=TEST"
    objConnect.Open connstring
     
    requete = "SELECT COUNT(*) FROM INTERVENANT;"
     
    'Exécution de la requête
    set objRecordsetSerrver.CreateObject("ADODB.Recordset")
    objRecordset.Open requete, objConnect
     
    ... traitement mais de toute façon ça bloque avant ...
     
    Set objRecordset=nothing
    Set objConnect=nothing
    Quelque chose vous semble faux ? Je ne comprends pas pourquoi la page se bloque à objRecordset.Open requete, objConnect alors que la connextion au serveur semble bien se faire.

  2. #2
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    qu'entend tu par ma page se bloque?
    as tu une erreur si oui laquelle?

  3. #3
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    Non aucune erreur affiché par IIS, je dis qu'elle se bloque, parce que l'HTML qui se trouve aprés cette partie de code ASP ne s'affiche pas, alors j'en déduit que l'interprétation de la page se bloque dans mon code ASP.

  4. #4
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    alors le probleme viens peut etre de ton code html!
    fait voir!
    a tu definis ds ton browser qu'il te montre les erreurs lorsqu'il y en a?

  5. #5
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Ce ne serait pas cette ligne qui pose problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set objRecordsetSerrver.CreateObject("ADODB.Recordset")
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set objRecordset = Serrver.CreateObject("ADODB.Recordset")
    Le signe égal

  6. #6
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    Non, c' est juste que j'avais mal copié le code.
    Pour le code HTML, je ne pense pas que ça vienne de la, c'est trés simple comme code :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <html>
    <body text="#000000" vlink="#551a8b" alink="#ff0000" link="#0000cc" bgcolor="#ffffff">
    <head>
        <title>Test</title>
    </head>
    <td width="53%">
    <font size="-1">
    <select name="Liste_Auteur_Moral">
    <%
    dim objConnect
    dim objRecordset
     
    set objConnect = Server.CreateObject("ADODB.Connection")
    connstring = "driver={SQL Server};server=localhost;database=TEST"
    objConnect.Open connstring
     
    ' Liste de tout les auteur moral
    requete = "SELECT COUNT(*) FROM INTERVENANT;"
     
    ' Exécution de la requête
    set objRecordset = Server.CreateObject("ADODB.Recordset")
    objRecordset.Open requete, objConnect
     
    ' Affichage de la liste
    Response.Write("<option value='0'>objRecordset(1)</option>")
     
    Set objRecordset=nothing
    Set objConnect=nothing
    %>
    <option value="1">Test</option>	
    </select>
    </font>
    </body>
    </html>
    Je devrais quand meme avoir dans mon menu déroulant la valeur "Test" mais la il est vide...

  7. #7
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    si tu veux avoir le nombre de champs pourquoi tu utilise select Box?[/code]

  8. #8
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    C'est juste pour me familiariser et générer dynamiquement des list box, peu importe le pourquoi. J'aimerai que cela fonctionne, mais il y a quelque chose qui m'a échappé il semblerait

  9. #9
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    moi perso je separs le asp du html:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    <% 
    dim objConnect 
    dim objRecordset 
     
    set objConnect = Server.CreateObject("ADODB.Connection") 
    connstring = "driver={SQL Server};server=localhost;database=TEST" 
    objConnect.Open connstring 
     
    ' Liste de tout les auteur moral 
    requete = "SELECT INT_NOM,INT_ID FROM INTERVENANT;" 
     
    ' Exécution de la requête 
    set objRecordset = Server.CreateObject("ADODB.Recordset") 
    objRecordset.Open requete, objConnect 
     
    %> 
     
    <html> 
    <body text="#000000" vlink="#551a8b" alink="#ff0000" link="#0000cc" bgcolor="#ffffff"> 
    <head> 
        <title>Test</title> 
    </head> 
    <td width="53%"> 
    <font size="-1"> 
    <select name="Liste_Auteur_Moral">
      <option value="0">Test</option>    
    <% do until objRecordset.eof
    Response.Write("<option value=objRecordset("INT_ID")>
    objRecordset("INT_NOM")</option>") 
    LOOP%>
     
    </select> 
    </font> 
    </body> 
    </html>

  10. #10
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    On avance ! Merci !
    Séparer le code semble fonctionner , en tous ça me renvoit une erreur parlante !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e09'
     
    [Microsoft][ODBC SQL Server Driver][SQL Server]Autorisation SELECT refusée sur l'objet 'INTERVENANT', base de données 'TEST', propriétaire 'dbo'.
     
    /Reference_Search.asp, ligne 14
    Pourtant j'ai donné tout les droits à l'utilisateur, bizarre.

  11. #11
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    voila au moins une piste!
    a tu definis des password a ta bas sql?
    regarde ds la faq c bien explique

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    il me semble que dans ton cas il faut spécifier quelques paramètres supplémentaires avec une chaine de connexion dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ConnString =  "Provider=SQLOLEDB.1;" _
    					&		"server=monserver;" _
    					&		"uid=nomUtilisateur;" _
    					&		"pwd=MonMotDePasse;" _
    					&		"database=leNomDeMaBase"

  13. #13
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    Non en fait, si ne je précise pas d'utilisateur, il choisit celui par defaut associé à la consultation du site web dans IIS.
    J'ai simplement ajouté ce compte Windows dans SQL Server et je lui ai donné les droits d'acces.
    Mais maintenant j'ai une autre erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Objet Response erreur 'ASP 0251 : 80004005'
     
    Limite du tampon de réponse dépassée
     
    /Reference_Search.asp, ligne 0
     
    L'exécution de la page ASP a provoqué un dépassement de la taille limite configurée de la mémoire tampon de réponse.
    J'ai essaye de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.buffer = false
    Pour résoudre ce problème, mais ça me fait carrement planté la bécane lol

  14. #14
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    Normal, j'avais une boucle infinie, j'avais oublié de rajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    objRecordset.MoveNext
    Tout fonctionne maintenant ! Merci à tous !

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

Discussions similaires

  1. Problème avec un recordset
    Par david71 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 08/02/2008, 14h53
  2. Problème avec adodb.recordset
    Par Pierre Fauconnier dans le forum VB.NET
    Réponses: 4
    Dernier message: 07/05/2007, 15h43
  3. Problème avec le recordset
    Par mademoizel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 04/03/2007, 12h28
  4. Problème avec un RecordSet
    Par Oberown dans le forum ASP
    Réponses: 4
    Dernier message: 04/01/2007, 11h59
  5. Problème avec ADODB.Stream
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 04/10/2006, 17h27

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