petit pb de connexion a une BD avec ASP - Programmation
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 ?
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...
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!!
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...
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.
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...
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...
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!!!
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??
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
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
%>
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...
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...