petit pb de connexion a une BD avec ASP

petit pb de connexion a une BD avec ASP - Programmation

Marsh Posté le 17-05-2001 à 10:14:54    

je ne sais pas d'où viens mon erreu sur ce qui suit :
 
<html>  
<head>  
<title>essais sur le dynamisme...</title>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
</head>  
 
<body bgcolor="#51A6DD">  
<p><b><font size="5">RECHERCHE DE L'INFORMATION :</font></b></p>  
 
<p>entrez le numéro de l'affaire : </p>  
 
<%  
dim Conn  
Set Conn=Server.CreateObject("ADODB.Connection" )  
Conn.Open "DSN=technical memory;"%>  
 
<%Set rs=conn.Execute("SELECT * FROM AFFAIRES" )%>  
<form name="num_affaire" method="post">  
<select name="num" size="1">  
<%  
rs.MoveFirst  
do while not rs.EOF%>  
<option value="<%=rs("Client" )%>"> <%=rs("Client" )%></option>  
<%rs.MoveNext  
Loop %>  
</select>  
<%  
Set rs=nothing  
conn.Close  
set conn=nothing  
%>  
</form>  
</body>  
</html>

 
sachant que j'ai bien un DSN du nom de "technical memory" fesant reference a une Base de Données du meme nom (cette BD se trouve dans le meme repertoire que mon fichier materiel_ce.asp qui contient le code ci-dessus
l'erreur qui apparaît est la suivante:
"Microsoft VBScript runtime error '80004005'
[Microsoft][ODBC Driver Manager] Disk or network error
/service/information/materiel_ce.asp, line10"
MERCI pour votre aide!


---------------
rom...
Reply

Marsh Posté le 17-05-2001 à 10:14:54   

Reply

Marsh Posté le 17-05-2001 à 10:42:49    

Conn.Open "DSN=technical memory;" ???? vbscript connait pas
 
mais la syntaxe : Conn.opent "technical memory" devrait êttre plus juste non ? enfin à tester.
 
de plus, la déclaration du dns dans panneau de config, faut verifier que t'as bien le driver odbc de la base ?

Reply

Marsh Posté le 17-05-2001 à 11:36:18    

J'utilise tellement de recorset ke j'ai fait une sub...
 
Alors : dans page.asp
 
<!--#include file="_fonctions.asp"-->
 
<%
   ' Connexion à la bdd
   dim cnx
   set cnx = Server.CreateObject("ADODB.Connection" )
   cnx.Open "DSN=technical memory;uid=login;pwd=password;"
 
   ' Création des curseurs et des requêtes
   dim rs
   sql = "select * from affaires"
   Curseur rs, sql, cnx
%>
 
Dans _fonctions.asp :
 
<%
Sub Curseur(rs, sql, cnx)
 
 set rs = server.CreateObject("ADODB.recordset" )
 set rs.ActiveConnection = cnx
 rs.CursorType = 0 'adOpenForwardOnly
 rs.LockType = 1 'adLockReadOnly
 rs.Open sql, cnx, 3, 3
 
End Sub
%>
 
 
Au début, j'avais essayé de faire une requête avec un conn.execute()... ça marchait pas top (en fait, je crois ke j'avias la même erreur ke toi.. ??!). Après, j'ai fait la méthode de dessus, et ça marche impecc... T'es pas obligé de faire une fonction ou une sub... mais, si t'as pas mal de requetes à faire, c'est bien moins chiant comme ça...
 
Sinon, essaye de mettre 'technical_memory' avec un underscore... ou alors un seul pour ta base et pas deux kom t'as toi...


---------------
-- Le MaM is back --
Reply

Marsh Posté le 17-05-2001 à 13:41:17    

lamatrice a écrit a écrit :

Conn.Open "DSN=technical memory;" ???? vbscript connait pas
 
mais la syntaxe : Conn.opent "technical memory" devrait êttre plus juste non ? enfin à tester.
 
de plus, la déclaration du dns dans panneau de config, faut verifier que t'as bien le driver odbc de la base ?




 
si je tape "opent"
j'ai un autre message d'erreur:
"the operation requested by the application is not allowed if the object is closed"
je ne pense dc pas que mon erreur vienne de là!!
 
mais par contre, si tu pouvais expliciter l'histoire des driver car ca parraît correspondre au message d'erreur...
MERCI!!


---------------
rom...
Reply

Marsh Posté le 17-05-2001 à 13:45:37    

mammam a écrit a écrit :

J'utilise tellement de recorset ke j'ai fait une sub...
 
Alors : dans page.asp
 
<!--#include file="_fonctions.asp"-->
 
<%
   ' Connexion à la bdd
   dim cnx
   set cnx = Server.CreateObject("ADODB.Connection" )
   cnx.Open "DSN=technical memory;uid=login;pwd=password;"
 
   ' Création des curseurs et des requêtes
   dim rs
   sql = "select * from affaires"
   Curseur rs, sql, cnx
%>
 
Dans _fonctions.asp :
 
<%
Sub Curseur(rs, sql, cnx)
 
 set rs = server.CreateObject("ADODB.recordset" )
 set rs.ActiveConnection = cnx
 rs.CursorType = 0 'adOpenForwardOnly
 rs.LockType = 1 'adLockReadOnly
 rs.Open sql, cnx, 3, 3
 
End Sub
%>
 
 
Au début, j'avais essayé de faire une requête avec un conn.execute()... ça marchait pas top (en fait, je crois ke j'avias la même erreur ke toi.. ??!). Après, j'ai fait la méthode de dessus, et ça marche impecc... T'es pas obligé de faire une fonction ou une sub... mais, si t'as pas mal de requetes à faire, c'est bien moins chiant comme ça...
 
Sinon, essaye de mettre 'technical_memory' avec un underscore... ou alors un seul pour ta base et pas deux kom t'as toi...




 
mon erreur reste malgres les changement que j'ai effectué d'apres ce que tu m'as donné...
pour l'underscore je vais le tenter...
mais je ne comprend pas ton histoire de :
"ou alors un seul pour ta base et pas deux kom t'as toi..."
je n'est pas deux quoi?underscore? a quel endroit?
merci de m'expliquer...


---------------
rom...
Reply

Marsh Posté le 17-05-2001 à 13:49:15    

je sais pas par où t'es passé pour déclarer le dns
 
mais sous win  panneau de config/ source de donnée ODBC/
 
-dans onglet DNS system et tu choisi ton fichier de données (access, ou autre) tu lui donne un nom DNS que t'utilisera dans ton script
 
-dans l'onglet DNS utilisateur il faut avoir le bon driver ODBC dans la liste. si t'utilise access ou mysql il faut que dans cette liste figure le driver adéquoit
 
 
-aussi j'ai jamais vu de nom dns en plusieur mot : comme elle dit la maman : fait plutot technical_memory ou tehmemory ou ce que tu veux.

Reply

Marsh Posté le 17-05-2001 à 14:25:21    

en mettant l'underscore, cette erreur a disparrut, mais malheureusement pour faire place a une nouvelle:
"General error Unable to open registry key 'Driverld'
 
pour ce qui est de la dns, pas de probleme, tt était fait comme il faut...


---------------
rom...
Reply

Marsh Posté le 17-05-2001 à 16:50:20    

Kan je dis "deux", c'est ton nom de la base ki est composé de deux mots : technical et memory... essaye ke technical ou memory... un mot sans underscore parce ke apparemment, il aime pas... Pour les drivers ODBC, si dans DSN Utilisateurs tu as l'extension du fichier kil te fô, alors kan tu vas créer ta DSN dans DSN System, ça marchera impecc...


---------------
-- Le MaM is back --
Reply

Marsh Posté le 21-05-2001 à 08:33:13    

sous la directive de vos judicieux conseils, j'ai changé le nom de ma DSN...
Malheureusement, je me retrouve avec une nouvelle erreur.
il est maintenant ecrit: "object required : 'con'" a la ligne 10
Voici ce que j'ai...
<HTML>
<HEAD>
<TITLE> essais sur le dynamisme</TITLE>
</HEAD>
<BODY bgcolor="#51A6DD">
<P> <B> <FONT size="5">RECHERCHE DE L'INFORMATION :</FONT></B></P>
 
<%
set contechnical_memory = server.createobject("adodb.connection" )
con.open ("dsn=memory" )%>
 
<%
Set rsAffaires = con.Execute ("AFFAIRES" )%>
 
<FORM name="num_affaires" methode="poste">
<SELECT name="num" size="1">
 
<%
rs.MoveFirst
do while not rs.EOF%>
 
<OPTION value='<%=rs("Client" )%>'> <%=rs("Client" )%> </OPTION>
 
<%
rs.MoveNext
loop%>
 
<%
rsAffaires.close
Set rsAffaires=nothing
con.close
%>
 
</FORM>
</BODY>
</HTML>

si vous savez d'ou cela peut venir??
MERCI!!!


---------------
rom...
Reply

Marsh Posté le 21-05-2001 à 08:49:34    

oups!!! desolé, j'ai vu l'enormité de ce que j'ai ecrit...
j'ai corrigé la version du dessus, mais maintenant, j'ai tjrs la meme erreur qu'avant...
cad : "General error Unable to open registry key 'Driverld' "
cela ne doit pas venir de mon code, mais peut être de mon installation de IIS 4.0??!!! non??


---------------
rom...
Reply

Marsh Posté le 21-05-2001 à 08:49:34   

Reply

Marsh Posté le 21-05-2001 à 09:54:05    

sinon, g essayé de tt mettre en javascript,
j'obtient comme erreur: " server is undefined " a la ligne 10...
quellle est la méthode en jscript?
 
<HTML>
<HEAD>
<TITLE> essais sur le dynamisme</TITLE>
</HEAD>
<BODY bgcolor="#51A6DD">
<P> <B> <FONT size="5">RECHERCHE DE L'INFORMATION :</FONT></B></P>
 
<%@Language="JavaScript"%>
<%
var conmemory = server.createobject("adodb.connection" );
conmemory.open ("dsn=memory" );%>
 
<%
var rsAffaires = con.Execute ("AFFAIRES" );%>
 
<FORM name="num_affaires" methode="poste">
<SELECT name="num" size="1">
 
<%
rs.MoveFirst;
while (!(rs.EOF))%>
 
<OPTION value='<%=rs("Client" )%>'> <%=rs("Client" )%> </OPTION>
 
<%
rs.MoveNext;
loop;%>
 
<%
rsAffaires.close;
var rsAffaires=nothing;
conmemory.close;
%>
 
</FORM>
</BODY>
</HTML>

Merci


---------------
rom...
Reply

Marsh Posté le 21-05-2001 à 10:20:30    

--------------------
var conmemory = server.createobject("adodb.connection" );
conmemory.open ("dsn=memory" );%>
var rsAffaires = con.Execute ("AFFAIRES" );%>
-------------------
déjà y a un prob dans ton con.Execute ça devrais être un truc genre Set rsAffaires = conmemory.execute "memory";
 
et puis les majustcule dans adodb, je crois que c'est important
 
 
donc ça nous fait en asp (un copier coller):
 
<%    
Set Conn=Server.CreateObject("ADODB.Connection" )    
Conn.Open "memory"%> pas dsn= ni de ; dans les guiellemet.
monsql= "select * from affaires;"
Set rs=conn.Execute(monsql)%>    
 
 
 
<%rs.MoveFirst    
do while not rs.EOF%>    
 
<%=rs("Client" )%>
..
.....
...
 
<%Set rs=nothing    
conn.Close    
set conn=nothing    
%>

Reply

Marsh Posté le 21-05-2001 à 11:08:57    

Heu Lamatrice ->... dans le conn.open... vô mieux repréciser ke tu veux bien une DSN... et le ';' est obligatoire mais seulement kan tu veux préciser un mot de passe et un login à ta base !
 
Cela ne dérange en rien si tu mets "cnx.Open "DSN=technical memory;uid=login;pwd=password;"... sachant ke login et password ne sont même pas déclarées...


---------------
-- Le MaM is back --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed