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 :

recordset et erreur 80040e10


Sujet :

ASP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut recordset et erreur 80040e10
    Bonjour,

    et bien, que c'est laborieux d'apprendre la programmation web !

    Pour le coup, j'ai besoin d'un coup de main de votre part concernant l'accès à une BDD Access 2002.

    J'ai le code suivant (la portion qui nous intéresse) dans une de mes pages :
    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
    <%@ language = "VBSCRIPT" %>
    <!-- #include file="./connect.asp" -->
    <% connecte = Session("logged")
    if Request.QueryString("action") = "log" then
    	set rs = server.createObject("ADODB.Recordset")
    	sql = "SELECT * FROM Acces WHERE login=" & Request.Form("login")
    	rs.open sql,db,3,3
    	if Request.Form("mdp") = rs("mdp") then
    		Session("logged") = 1
    	end if
    	'fermeture de la table
    	rs.close
    	'liberation des ressources (place prise en memoire par la variable rs)
    	set rs = nothing
    elseif Request.QueryString("action") = "delog" then
    	Session("logged") = 0
    	response.redirect("./default.asp")
    end if
    'fermeture de la bdd
    db.close
    'liberation des ressources (place prise en memoire par la variable db)
    set db = nothing %>
    lequel inclue cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <% 'chemin vers la base de donnees
    dbPath = server.MapPath("./BDD/GIA.mdb")
    'creation de lobjet permettant la connexion
    set db = server.CreateObject("ADODB.Connection")
    'connexion
    db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & dbPath %>
    Voilà pour le code !

    Maintenant, l'erreur :
    Erreur de compilation Microsoft VBScript error '800a0401'

    Fin d'instruction attendue

    /iisHelp/common/500-100.asp, line 11


    Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
    --------------------------------------------------------------------------^
    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

    [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.

    /GIA/default.asp, line 7
    Alors ben le truc c'est que ce message d'erreur ne me dit rien. De plus, j'ai le fichier d'aide compilé d'ASP (grâce à un des post-it de ce forum) mais ce code erreur n'y figure pas.

    Un tuyau ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    Et bien voilà ce qui n'allait pas : la variable passée dans la requête étant une chaîne de caractères, il faut l'encadrer avec des guillemets, comme suit :
    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
    <% connecte = Session("logged")
    if Request.QueryString("action") = "log" then
    	set rs = server.createObject("ADODB.Recordset")
    	sql = "SELECT * FROM Acces WHERE login='" & server.HTMLEncode(Request.Form("login")) & "'"
    	response.write(sql)
    	rs.open sql,db,3,3
    	if not rs.EOF then
    		if Request.Form("mdp") = rs("mdp") then
    			Session("logged") = 1
    		end if
    	end if
    	'fermeture de la table
    	rs.close
    	'liberation des ressources (place prise en memoire par la variable rs)
    	set rs = nothing
    elseif Request.QueryString("action") = "delog" then
    	Session("logged") = 0
    	response.redirect("./default.asp")
    end if
    'fermeture de la bdd
    db.close
    'liberation des ressources (place prise en memoire par la variable db)
    set db = nothing %>
    De plus, mon premier problème résolu, j'en avais un autre qui était uniquement dû au fait que je ne testais pas la fin de la table.

    Une dernière question sur le sujet tout de même :
    Comment échapper les caractères spéciaux dans une requête SQL mais sans les supprimer ? En gros, si ma chaîne de caractères contient des guillemets, je veux bien les coder mais non les supprimer.
    Faut-il procéder comme je l'ai fait dans ce cas ? (grâce à server.HTMLEncode)

    Merci.

  3. #3
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut
    Tu peux aussi les doubler en utilisant la fonction replace()

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    Ok, merci, donc j'en déduis à ton "aussi" que ma solution est également valable. 8)

    Merci à toi.

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

Discussions similaires

  1. ADODB recordset.sort erreur'3251'
    Par zit_zit dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/06/2009, 15h08
  2. ecriture de Recordset avec erreur
    Par pphil972 dans le forum VBA Access
    Réponses: 10
    Dernier message: 15/09/2008, 10h28
  3. [VBA] requête, recordset et erreur 3021
    Par bugprog dans le forum VBA Access
    Réponses: 10
    Dernier message: 27/04/2007, 09h13
  4. recordset select : erreur
    Par acorna dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 28/08/2006, 16h09
  5. Réponses: 1
    Dernier message: 28/04/2006, 20h36

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