Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2007, 02h18   #1
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Par défaut je ne sais pas pourquoi ce code ca marche pas

Bonjour tlm, je ne sais pas pourquoi ce code ca marche pas chez moi
il me donne aucune erreur juste une blanche page
date_jour c'est le jour ou la commande est passée et biensur j'ai des commandes passée aujourd'huit, mais il les affichent pas.

Code asp :
1
2
3
4
5
6
7
8
9
 
sql="select * from command where date_jour=" & date
set rs=server.CreateObject("adodb.recordset")
rs.open sql,DBASE
 
do while not  rs.eof
  response.write rs("num_com") &"<br>"
  rs.movenext
  loop
quelqu'un peut m'aider?
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 08h09   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Bonjour,

Je suppose que tu interroges une table DBASE ?

Tu fais un response.write sql après la ligne
Citation:
sql="select * from command where date_jour=" & date
et tu la testes directement sous DBASE ...
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 09h32   #3
vva
Membre éclairé
 
Avatar de vva
 
Inscription : décembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : décembre 2004
Messages : 463
Points : 394
Points : 394
Bonjour,

As tu bien vérifié que tes deux dates soient du même format ?
vva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 21h28   #4
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Bonjour, oui ils sont de meme type et pour la table c'est "Command" et "DBASE" c'est la chaine de connexion.
bon voila le vrai code que je mets
dans la page admin.asp:

Code asp :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
if request.Form("submit1")="Envoyer" then
response.Cookies("ajrd")=date
response.Redirect("voircommandes.asp?date=ajrd")
else if request.Form("submit2")="Envoyer" then
response.Cookies("hier")=date-1
response.Redirect("voircommandes.asp?date=hier")
else if request.Form("submit3")="Envoyer" then
response.Cookies("date1")=request.Form("date1")
response.Cookies("date2")=request.Form("date2")
response.Redirect("voircommandes.asp?date=between")
else if request.Form("submit5")="Envoyer" then
response.Cookies("choix")=request.Form("choix")
response.Redirect("voircommandes.asp?date=choix")
else if request.Form("submit4")="Envoyer" then
response.Cookies("nom")=request.Form("nom")
response.Redirect("voircommandes.asp?nom=nom")
end if
end if
end if
end if
end if


La page voircommandes.asp:

Code asp :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
if request.QueryString("date")="between" then
d1=request.Cookies("date1")
d2=request.Cookies("date2")
sql="select * from command where Date_envoi between "&d1&" and "&d2
DBASE.execute sql
set rs=server.CreateObject("adodb.recordset")
rs.open sql,DBASE
do while not rs.eof
response.write rs("nom")
rs.movenext
loop
else if request.QueryString("date")="ajrd" then
ajrd=request.Cookies("ajrd")
sql="select * from command where date_jour=" & ajrd
DBASE.execute sql
set rs=server.CreateObject("adodb.recordset")
rs.open sql,DBASE
do while not rs.eof 
response.write rs("nom")
rs.movenext
loop
 
else if request.QueryString("date")="hier" then
hier=request.Cookies("hier")
response.Write(hier)
else if request.QueryString("date")="choix" then
choix=request.Cookies("choix")
response.Write(choix)
else if request.QueryString("nom")="nom" then
nom=request.Cookies("nom")
response.Write(nom)
end if
end if
end if
end if
end if


-------------
La prochaine fois utilise la balise code (#) c'est fait pour ça
Kaiser59
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 22h04   #5
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 248
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 248
Points : 1 205
Points : 1 205
Envoyer un message via MSN à kaiser59
Salut,

Tout d'abord deux remarques :
1 - Evite d'utiliser des noms de variables qui pourrait porter confusion avec les mots propres à l'asp ou au requête tel que "date", "between" etc...

2 - J'ai corrigé ms évite d'ouvrir et de fermer l'asp à tout bout de champ alors que tu continue ton code avec de l'asp sa fait ralentir l'affichage de la page

Tu dis que cela ne marche pas, qu'elle est le message d'erreur affiché alors ?
Tes date sont en quel format d1 et d2 (jj/mm/aaaa, mm/jj/aaaa...) ? Car sql compare tes dates si je me souviens bien, dites moi si je me trompe, au format mm/jj/aaaa
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 04h13   #6
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Par défaut recherche par date

Bonjour, tlm
j'ai une base de donnée et j'ai un champ "d_com" de type date, il recupere la date de jour ou les commandes passent.
je veux faire un appel des commandes par date comme une recherche.
j'ai fait ce code mais ca marchait pas.
base de donnée sql server
format de date jj/mm/aaaa.
voila la chaine de connexion:
Code :
1
2
3
4
5
 
<%
Set DBase = Server.CreateObject("ADODB.Connection")
DBase.Open "driver={SQL Server}; server=(local);uid=SA;pwd=031983;database=MABASE"
%>
voila le code

Code :
1
2
3
4
5
6
7
8
9
 
<%
sql="select * from command where d_com="& date
set rs=server.CreateObject("ADODB.Recordset")
rs.open sql,DBASE
do while not  rs.eof
 response.Write(rs("num_com"))%><br>
   <%rs.movenext
	  loop%>
a vous de voir
merci infiniment
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 08h51   #7
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Bonjour

Qu'est ce qui ne marche pas ?

date te renvoie effectivement au format jj/mm/aaaa

sql (le langage) considère en principe les dates au format mm/jj/aaaa (format américain, eh oui !)

Bon, ceci dit, je ne pratique pas trop SQL server, mais plusieurs pistes, la première :

Perso, j'ai pris l'habitude :
1/ de systematiquement convertir les dates au format mm/jj/aaaa
2/ d'encadrer les dates par des #

ainsi :
Code :
sql="select * from command where d_com=#"& dateAm(date) & "#"
(Je te laisse le soin d'écrire dateAm()
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 18h52   #8
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Bonjour
voila ce que me donne quand je mets les "#"
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '#'.
pour la dateam ca marchait pas. Vous dites que sql prend par defaut la date americaine mais chez moi non il prend la date de format jj/mm/aaaa.
pour la response.write(sql) la voila:
Code :
1
2
 
select * from command where d_com=22/11/2007
mais le bizzare c'est quand je mets:
Code :
1
2
 
sql="select * from command where d_com=d_com"
quand je mets le nom de column= le nom de column
il m'affiche toutes les enregistrements.
vraiment je ne sais pas que dois je faire
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 19h08   #9
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
1/ Pour les #, c'est peut-etre spécifique à Access, à dire vrai je n'en sais rien (encore une fois, je ne pratique pas trop SQLserver). Le principe serait de construire une requete comme ceci :
select * from command where d_com=#11/22/2007#

2/ Pour :
Code :
select * from command where d_com=22/11/2007
Il te retourne tous les enregistrements, c'est normal puisque la clause where est toujours vérifiée

3/ En ce qui concerne ton problème, essaie de construire ta requete comme ceci, alors :
sql="select * from command where date_jour='" & ajrd & "'"

(sans garantie du resultat)
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 19h32   #10
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 248
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 248
Points : 1 205
Points : 1 205
Envoyer un message via MSN à kaiser59
Du point de vue des dates je trouve MSSQL vraiment trop nul dessus car assez étrange pour ma part la manip des dates lors des requêtes.

Regarde du côté de datediff cela devrait répondre à ta question
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 20h17   #11
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
C'est bizzare tout ça, ca marchait pas avec les "#" je sais que ca marche bien avec les "#" en Access mais l'Access ne permet pas de passer plusieurs commandes a la fois pas comme sql server, je ne sais pas ou est le probleme.
J'ai meme fait des requêtes sur sql query analyzer :
j'ai fait directement
Code :
1
2
3
 
select * from command
where d_com='2007-11-22'
ca marchait LOL j'etais entrain d'ecrire et de tester en meme temps.
Voila ce code ca marchait dans sql query analyzer et sur ma page asp aussi
meme ce code :
Code :
1
2
3
 
select * from command
where d_com between '2007-11-21' and '2007-11-23'
maintenant le probleme que j'ai c'est lorsque je teste avec la date du jour il fait rien parce que il prends la date de format jj-mm-aaaa.
Mais le bizzare c'est quand j'ouvre ma base de données je trouve la date en format jj/mm/aaaa, et quand je fais l'affichage en sql query analyzer il affiche la date avec le format aaaa-mm-jj.
Maintenant il me faut trouver comment convertir ma date en aaaa-mm-jj.
j'espere que c'est un peu claire
j'attends vos reponses kaiser et roro
A+
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 21h05   #12
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Salut,
Citation:
Envoyé par debutantasp Voir le message
Maintenant il me faut trouver comment convertir ma date en aaaa-mm-jj
Code :
year(date()) & "-" & month(date()) & "-" & day(date())
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 21h40   #13
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
n'est pas encore resolu
lorsque je teste le code que vous m'avez donné, tt seul il m'affiche 2007-11-22 mais quand je l'affecte a ma variable date je trouve sur ma base de données qu'il a appris dans ce format 22/11/2007 je ne sais pas pourquoi, meme j'ecrivais 2007-11-22 dans un champ de texte et je l'ai trouvais comme ca 22/11/2007
est ce que ca va marcher si je la declare comme varchar?
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2007, 08h17   #14
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Salut,

Non, non, laisse le format date. Ne t'inquiete pas l'affichage de la date dépend des paramètres regionaux de Windows qui pour toi doivent être en français. Laisse SQL faire sa sauce. Par contre envoi lui tjrs la date au format US dans tes requetes SQL.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2007, 17h10   #15
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Par défaut Merci

Salut tlm
Enfin je suis arrivé a resoudre le probleme de la date.
Merci a vous et a Immobilis.
En fait MSSQL prend le ' en place du #
je vais vous montrer le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<%
d=year(date()) & "-" & month(date()) & "-" & day(date())
sql="select * from command where d_com='" & d & "'"
set rs=server.CreateObject("ADODB.Recordset")
rs.open sql,DBASE
do while not  rs.eof
 response.Write(rs("num_com"))%><br>
   <%rs.movenext
	  loop 
	response.Write(sql)
%>
Voila le response.write(sql) ce qui a donné

Code :
1
2
 
select * from command where d_com='2007-11-23'
Et voila mon probleme est resolu, je vous remercie.Mais j'en ai bcp d'autre
Alors on se voit dans un nouveau poste et un nouveau probleme.
A+
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h09.


 
 
 
 
Partenaires

Hébergement Web