[ASP-ACCESS] Pb connexion bdd

fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005 - 21 avril 2005 à 17:32
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005 - 29 avril 2005 à 09:50
Salut,

Je n'arrive pas a me connecter a ma base access. Quand je teste ma base en local j'obtient le message suivant :

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Gestionnaire de pilotes ODBC] Échec SQLSetConnectAttr du pilote
/test.asp, line 14


Code :

<LI><%
<LI> dim objConnect
<LI> dim objRecordset
<LI>
<LI> set objConnect = Server.CreateObject("ADODB.Connection")
<LI> objConnect.Open "bd2"
<LI> set objRecordset = Server.CreateObject("ADODB.Recordset")
<LI> objRecordset.Open "SELECT * FROM VERSION;", objConnect
<LI>%></LI>


La ligne 14 c'est celle la : objConnect.Open "bd2"

Je suis sous Win2000 server. Dans le panneau de config=>outils d'administration=>source de données odbc j'ai bien ajouté ma base bd2.mdb dans source de données utilisateur (et systèmes) en mettant bd2 dans "Nom de la source de données". J'y comprends plus rien, j'ai passé a journée a ca, l'horreur je pete 1 cable !

J'ai fait pleins de recherches ca semble etre une erreur fréquente mais j'ai rien trouvé.

Merci.
Ps : Je suis un gros newbie en ASP !

Please help !

37 réponses

cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
21 avril 2005 à 17:45
Bonjour

Essaie peut-être

objConnect.open "dsn=bd2"


Cordialement
Roro webDev
0
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
21 avril 2005 à 17:53
Merci pour ta réponse roro, mais ca ne marche pas .
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
21 avril 2005 à 19:52
Salut,

tu as fait :
source de données utilisateur (et systèmes)

Les 2 ???

Enlèves la source de données utilisateur et laisse la système.

yopyop
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
21 avril 2005 à 20:20
Bonjour

L'objet connection n'est pas utile ici.

pour interroger une bd unrecordse suffit.

set rs=server.createObject("adodb.recordset")

rs.activeConnection="dsn=bd2" ' j'insiste !
rs.source="select * from version"

rs.open



perso, je prefere utiliser des connections "dsn-less" (je crois que ça s'appelle comme ça") :

rs.activeConnection= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="
& server.mapPath(".") & "/databases/mabase.mdb ;User
ID='***';Password='***';"



la base de données étant bien sur dans un repertoire nomme databases


Cordialement
Roro webDev
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 11:05
@Yopyop : Ca n'a rien changé . Merci tout de même.

@roro06 : en dsn-less j'obtient ca
Erreur d'exécution Microsoft VBScript (0x800A01A8)
Objet requis: ''
/test.asp, line 12

Et avec l'autre méthode, j'obtient

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Pilote ODBC Microsoft Access] Le moteur de la base de données Microsoft Jet ne peut pas ouvrir le fichier '(Inconnu)'. Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses données.
/test.asp, line 13 (rs.activeConnection="dsn=bd2")
Je comprends pas du tout car j'ai bien laissé la modif de yopyop !
Merci encore roro06 !

Apparemment la méthode dsn-less devrait etre ok pour ce que je dois faire. Et puis ca m'enlevera ce probleme avec les DSN !
Je craques !
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
22 avril 2005 à 11:44
Bonjour

Craques pas, t'es plus tres loin !



Verifie bien l'integralité de ton code, les noms des objets (recordset, repertoires, ...) .Ca DOIT passer.

Tiens-nous au courant


Cordialement
Roro webDev
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
22 avril 2005 à 12:18
euh c'est bête comme truc, mais fermes ton fichier access pendant que tu testes ton application...
et est-tu sûr d'avoir bien tout les droits sur ton fichier access ?

non seulement les paramètres de conection mais également le droits de lecture/écriture sur le fichier ?

il est dans le répertoire de l'application ou dans un autre répertoire ?

yopyop
0
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 13:04
Bah là je ne trouve vraiment pas ! Autant je vais m'en sortir pour débugger du php mais la je suis totalement perdu.
La ligne posant probleme est celle avec rs.activeConnection ...., IE me mets Objet requis: ''

cela voudrait dire qu'il manque juste " ???
J'ai éssayé des trucs mais je m'en sors pas !

Mon fichier access n'est pas ouvert et j'ai vérifié les droits je les ai tous (controle total,modifier,lecture et execution,lecture,ecriture). Par contre que veux tu dire par les droits sur les paramètres de connexion ??
bd2.mdb se trouve dans le répertoire databases

Voilà le code au cas ou

<%@ LANGUAGE="VBSCRIPT" %>
<HTML>


<HEAD>
<TITLE>Exemple</TITLE>
</HEAD>



<%
dim objRecordset
dim objConnect
rs.activeConnection= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mapPath(".") & "/databases/bd2.mdb ;User ID='';Password='';"
set objRecordset = Server.CreateObject("ADODB.Recordset")
objRecordset.Open "SELECT * FROM VERSION;", objConnect
%>



<%
Do While not objRecordset.eof
Response.Write(objRecordset("major"))
Response.Write("
")
objRecordset.MoveNext
loop


set objRecordset=nothing
set objConnect=nothing
%>

</HTML>
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
22 avril 2005 à 14:42
Bonjour


Déjà tu as le tiercé dans le désordre :


dim objRecordset
dim objConnect
rs.activeConnection=
"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
server.mapPath(".") & "/databases/bd2.mdb ;User ID='';Password='';"
set objRecordset = Server.CreateObject("ADODB.Recordset")
objRecordset.Open "SELECT * FROM VERSION;", objConnect


(tu définit la propriété activeConnection avant de définir rs !)

Oublies l'objet connection (objConnect) et fais dans l'ordre :



dim objRecordset

set objRecordset = Server.CreateObject("ADODB.Recordset")


rs.activeConnection=
"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
server.mapPath(".") & "/databases/bd2.mdb ;User ID='';Password='';"

objRecordset.Open "SELECT * FROM VERSION"


Ca doit glisser


Cordialement
Roro webDev
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
22 avril 2005 à 14:47
Bonjour

Oups, je corrige :

au lieu de

objRecordset.Open "SELECT * FROM VERSION"

je mets


objRecordset.source= "SELECT * FROM VERSION"

objRecordset.open


Cordialement
Roro webDev
0
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 15:07
aaaaaaaaaaaaaaaaaa j'ai la meme erreur a la meme ligne !
toujours cette ligne avec rs ! Merci roro pour ton aide, la je suis trop désespéré !
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
22 avril 2005 à 15:17
Bonjour

Rhaaa !!!

Fais voir ta page en entier, ce n'est pas normal que ça ne marche pas !!


Cordialement
Roro webDev
0
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 15:19
voila le copier coller de la page :

<%@ LANGUAGE="VBSCRIPT" %>
<HTML>


<HEAD>
<TITLE>Exemple</TITLE>
</HEAD>



<%
dim objRecordset
set objRecordset = Server.CreateObject("ADODB.Recordset")
rs.activeConnection= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mapPath(".") & "/databases/bd2.mdb ;User ID='';Password='';"
objRecordset.source= "SELECT * FROM VERSION"
objRecordset.open


%>



<%
Do While not objRecordset.eof
Response.Write(objRecordset("major"))
Response.Write("
")
objRecordset.MoveNext
loop


set objRecordset=nothing
set objConnect=nothing
%>

</HTML>
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
22 avril 2005 à 16:07
c'est normal ca :
rs.activeConnection
c'est pas plutôt
objRecordSet.activeConnection

yopyop
0
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 16:30
merci ca a changé mon erreur lol ! Toujours a la meme ligne par contre

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Pilote ODBC Microsoft Access]Erreur générale Impossible d'ouvrir la clé de registre 'Temporary (volatile) Jet DSN for process 0x538 Thread 0x77c DBC 0x20a3994 Jet'.
/test.asp, line 12

je croyais que c'étais dsn-less ce que j'avais fait

Sinon si quelqu'un a un bon tuto pour asp qu'il me fasse signe ! Car la je comprends pas tout ce que je fais, c'est dommage
0
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 16:34
et puis en POO c'est chaud j'ai fais 1 peu de C++ l'année dernière et cette année ils nous ont zappé le Java les abrutis !
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
22 avril 2005 à 16:43
re,

c'est pas un problème d'asp mais de configuration.

si tu comprends l'anglais
http://www.attention-to-details.com/newslog/38n-temporary-volatile-jet-dsn-for-process.asp

en francais mais beaucoup moins précis
http://www.hebergement.com/faq/windows/erreurs.asp
yopyop
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
22 avril 2005 à 16:46
autrement, juste pour voir, mets ta base dans le même répertoire que ton application..
juste pour tester.

yopyop
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
22 avril 2005 à 16:56
Bonjour

mea culpa ,
c'est vrai qu'a force de copier-coller, on s'est un peu emmelé les
pinceaux entre rs et objRecordset. Il s'agissait, bien evidemment de
définir un seul et même objet recordset, qu'on l'appelle rs ou
objRecordset, peu importe. Donc remplace tous tes rs par objRecordset,
la syntaxe de ta page est OK, l'erreur de temporary machin vient
d'autre part (je l'ai déjà eu à maintes reprises). reboote ton serveur
(sous dos : iisreset/restart ) ou carrément ta machine. Souvent, ça
suffit. Donne également à ton repertoire de base, (celui du site),
ainsi qu'à ses sous-répertoires les droits suffisants pour
l'utilisateur IWAM_nom_de_ta_machine et IUSR_nom_de_ta_machine.

Cordialement
Roro webDev
0
fal91 Messages postés 33 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 16:59
le fait de charger la base de place ainsi que le chemin ne change rien
Je regarde les tutos merci !
0
Rejoignez-nous