Requête SQL avec ASP

Requête SQL avec ASP - ASP - Programmation

Marsh Posté le 03-05-2002 à 13:45:26    

Bon je suis pas très douée en asp et j'ai un problème avec ma requete sql dans mon code.
 
Requete:
<% Set oRs = Connect.Execute ("Select cal_comment from t_calendar  
where cal_annee = annee_courant  
and cal_mois = mois_courant  
and cal_jour = jour_courant" ) %>
 
et voici l'erreur que ca me donne:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'  
 
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 3 attendu.  
 
 
si je limite ma requete au seul select ... from, cela fonctionne. Comment je dois faire pour qu'il accepte ma requete de cette facon-là?

Reply

Marsh Posté le 03-05-2002 à 13:45:26   

Reply

Marsh Posté le 03-05-2002 à 13:56:52    

Connect.Execute ("Select cal_comment from t_calendar  
where cal_annee = " + annee_courant + " and cal_mois = " + mois_courant + " and cal_jour = " + jour_courant)  
 
OK ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 03-05-2002 à 14:00:26    

Urd-sama a écrit a écrit :

Bon je suis pas très douée en asp et j'ai un problème avec ma requete sql dans mon code.
 
Requete:
<% Set oRs = Connect.Execute ("Select cal_comment from t_calendar  
where cal_annee = annee_courant  
and cal_mois = mois_courant  
and cal_jour = jour_courant" ) %>
 
et voici l'erreur que ca me donne:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'  
 
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 3 attendu.  
 
 
si je limite ma requete au seul select ... from, cela fonctionne. Comment je dois faire pour qu'il accepte ma requete de cette facon-là?  




 
Bah c'est normale que ça marche pas
Si j'ai bien compris tes paramètres c'est annee_courant,mois_courant,jour_courant
 
Alors la requête c'est :
 
<% Set oRs = Connect.Execute ("Select cal_comment from t_calendar where cal_annee = "&annee_courant&" and cal_mois = "&mois_courant&" and cal_jour = "&jour_courant) %>
 
Ca devrait marcher mieux avec les "& et &" qui te permmettent de passer tes paramètres  
 
Voili voilà
 
Bonhomme

Reply

Marsh Posté le 03-05-2002 à 14:05:39    

oui ca fonctionne merci beaucoup
maintenant j'ai un problème de format, ca me mets l'erreur suivante:
Type incompatible: '[string: "Select cal_comment f"]'  
 
le champ est de type mémo sous access, je dois faire qqch de particulier dans le code asp?

Reply

Marsh Posté le 03-05-2002 à 14:46:56    

up

Reply

Marsh Posté le 03-05-2002 à 16:32:45    

Urd-sama a écrit a écrit :

Type incompatible: '[string: "Select cal_comment f"]'  




Si ton champ est de type memo, tu dois l'encadrer par des '...'
Fais un copier/coller de cette ligne dans ton source :
 
Select cal_comment from t_calendar where cal_annee = '" & annee_courant & "' and cal_mois = " & mois_courant & " and cal_jour = " & jour_courant

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 03-05-2002 à 16:33:49--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 03-05-2002 à 16:34:19    

Oublie le post précédent, je me suis gentiment loupé  :heink:  
 

Urd-sama a écrit a écrit :

Type incompatible: '[string: "Select cal_comment f"]'  




 :??:  
Tu as tapé ta requete correctement, tu n'as pas oublié de ", ou t'en a pas mis ou il ne fallait pas ?
 
Fais un copier/coller de cette ligne dans ton source :
 
Select cal_comment from t_calendar where cal_annee = " & annee_courant & " and cal_mois = " & mois_courant & " and cal_jour = " & jour_courant
 
Ca a l'air con, mais sous VB, si tu n'as pas d'espace entre le " et le &, tu as une erreur. Peut etre est-ce la meme chose en ASP ??
 
Je connais pas l'ASP, je te propose juste ceci tiré de mon expérience perso avec VB

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 03-05-2002 à 16:35:07--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 03-05-2002 à 16:47:37    

Harkonnen a écrit a écrit :

Ca a l'air con, mais sous VB, si tu n'as pas d'espace entre le " et le &, tu as une erreur. Peut etre est-ce la meme chose en ASP ??




 
non, c'est le cas en asp.net mais pas en asp qui est plus tolérant ;)

Reply

Marsh Posté le 03-05-2002 à 17:15:26    

Harkonnen a écrit a écrit :

Oublie le post précédent, je me suis gentiment loupé  :heink:  
 
 
 :??:  
Tu as tapé ta requete correctement, tu n'as pas oublié de ", ou t'en a pas mis ou il ne fallait pas ?
 
Fais un copier/coller de cette ligne dans ton source :
 
Select cal_comment from t_calendar where cal_annee = " & annee_courant & " and cal_mois = " & mois_courant & " and cal_jour = " & jour_courant
 
Ca a l'air con, mais sous VB, si tu n'as pas d'espace entre le " et le &, tu as une erreur. Peut etre est-ce la meme chose en ASP ??
 
Je connais pas l'ASP, je te propose juste ceci tiré de mon expérience perso avec VB  
 
 




 
Non pas d'erreur pour ce truc avec l'ASP je l'ai fait la semaine dernière pour un site :)
 
Bonhomme

Reply

Marsh Posté le 07-05-2002 à 13:44:38    

super, merci beaucoup j'ai pu enfin régler le problème  :D  
je risque d'en rencontrer d'autres, au cas ou je vous sonnerai, en tout cas merci bokou  :ange:

Reply

Marsh Posté le 07-05-2002 à 13:44:38   

Reply

Marsh Posté le 08-05-2002 à 07:58:58    

et voilà j'ai un autre probleme maintenant
 
dans une page, je récupère la date, le mois et le jour, puis fait la meme requete sql que précédemment.
 
ensuite, je fais une condition:
- si recordset est EndOfFile, créé un nouvel enregistrement
- sinon update le champ de commentaire du recordset
 
la page me fait une erreur dans les 2 cas, je cite:
"ADODB.Recordset error '800a0cb3'  
Le fournisseur ou l'objet ne prend pas en charge cette opération."
 
c'est un probleme au niveau des permissions d'ecriture de la base de donnees access? (je n'ai rien touché à ce genre d'option, juste envoyé la base sur le serveur)
 
aidez-moi pour que je puisse partir en week-end l'esprit en paix  :sarcastic:

Reply

Marsh Posté le 08-05-2002 à 11:19:19    

Balance le code on verra mieux parce que là à mon avis c'est une erreur de syntaxe ;)
 
Bonhomme

Reply

Marsh Posté le 08-05-2002 à 19:36:43    

C'est Urd qui écrit  :D  
 
<% jour_modif = Request.Form("jour" )
   mois_modif = Request.Form("mois" )
   annee_modif = Request.Form("annee" )
   commentaire = Request.Form("comment" )
%>
 
 
<%
Set Connect = Server.CreateObject("ADODB.Connection" )
ConnectDBQ="DRIVER={Microsoft Access Driver (*.mdb)};"&"DBQ="&Server.MapPath("/*********/basedonnee/calendar.mdb" )
Connect.Open ConnectDBQ
%>
<% sql= "Select * from t_calendar where cal_annee = " & annee_modif & " and cal_mois = " & mois_modif & " and cal_jour = " & jour_modif
set oRs = Connect.Execute (sql)
%>
 
<% if oRs.EOF = True then
oRs.AddNew
oRs.fields("cal_jour" ) = jour_modif
oRs.fields("cal_mois" ) = mois_modif
oRs.fields("cal_annee" ) = annee_modif
oRs.fields("cal_comment" ) = commentaire
oRs.Update
else
oRs.fields("cal_comment" ) = commentaire
oRs.Update
end if
oRs.Close
%>

 

[jfdsdjhfuetppo]--Message édité par Ataru le 08-05-2002 à 19:37:20--[/jfdsdjhfuetppo]


---------------
tout les goûts sont dans la nature, et la nature a tout les goûts !
Reply

Marsh Posté le 08-05-2002 à 20:59:47    

J'ai pas tout compris mais essai ça :
<% sql= "Select * from t_calendar where cal_annee = " & annee_modif & " and cal_mois = " & mois_modif & " and cal_jour = " & jour_modif  
Set oRs = Connect.Execute (sql)  
 
  If (oRs.EOF) then  
   sql = "INSERT INTO T_CALENDAR (cal_jour, cal_mois, cal_annee, cal_comment) VALUES ('" & jour_modif & "', '" & mois_modif & "', '" & annee_modif & "', '" & commentaire & "'" )
  Else  
   sql = "UPDATE T_CALENDAR SET cal_comment = "' & commentaire & "'"
  End If  
Connect.Execute (sql)
oRs.Close  
%>  
 
Le seul problème est que quand ttu feras ton update il faut préciser sur quel enregistrement tu le fais et donc rajouter une clause WHERE sinon tous tes enregistrements seront modifiés.
 
@ + : Rem'

Reply

Marsh Posté le 14-05-2002 à 15:23:02    

apparemment y'a une erreur de syntaxe, ca me mets "fin d'instruction attendue" pour la ligne du insert into
 
pour le update, j'ai simplement spécifié la clause where comme celle du select, ce qui donne:
 
sql = "UPDATE T_CALENDAR SET cal_comment = "' & commentaire & "' where cal_annee = " & annee_modif & " and cal_mois = " & mois_modif & " and cal_jour = " & jour_modif
 
Il doit y reste des erreurs de syntaxe dans ces différentes lignes, malheureusement j'arive pas à trouver lesquelles.

Reply

Marsh Posté le 14-05-2002 à 15:46:09    

Recommence avec la requête SQL suivante :
 
"INSERT INTO T_CALENDAR (cal_jour, cal_mois, cal_annee, cal_comment) VALUES ('" & jour_modif & "', '" & mois_modif & "', '" & annee_modif & "', '" & commentaire & "';)"
 
(fais un copier coller)

Reply

Marsh Posté le 15-05-2002 à 09:29:49    

okay l'instruction update fonctionne correctement! merci!
par contre j'ai l'erreur "Erreur de syntaxe dans l'instruction UPDATE." pour ca:
 
sql = "UPDATE T_CALENDAR SET cal_comment = "' & commentaire & "' where cal_annee = " & annee_modif & " and cal_mois = " & mois_modif & " and cal_jour = " & jour_modif
 
je suis en train de tenter de trouver l'erreur mais si jamais qqun voit ca avant moi...

Reply

Marsh Posté le 15-05-2002 à 09:39:00    

Essais avec ça (preds l'habitude de metre le SQL en majuscule car cé + lisible)
 
sql = "UPDATE T_CALENDAR SET cal_comment = '" & commentaire & "' where cal_annee = " & annee_modif & " and cal_mois = " & mois_modif & " and cal_jour = " & jour_modif

Reply

Marsh Posté le 15-05-2002 à 10:18:57    

génial! merci beaucoup tout fonctionne!!
vraiment tu me sauve la vie, fallait absolument que je finisse ce truc pour le boulot cette semaine et j'avais peur de jamais y arriver!
Vraiment un grand MERCI  :love:

Reply

Marsh Posté le 15-05-2002 à 10:31:46    

No problemo cé pas c'ki avait de + difficile

Reply

Marsh Posté le 05-06-2002 à 11:08:00    

coucou j'ai encore un dernier problème
quand je remplis le champ de commentaire avec un string, il me fait une erreur si je mets un apostrophe.
je dois faire un test sur la string et remplacer chaque ' par /'?
ou y'a-t-il une solution plus simple?
dans tous les cas, qqun à un code a me proposer? (vu que je suis archi nulle en syntaxe)
merci beaucoup d'avance  :sarcastic:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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