Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2913 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Problème de date dans requête SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] Problème de date dans requête SQL

n°334145
urd-sama
waste of space
Posté le 15-03-2003 à 19:33:31  profilanswer
 

Je suis en train de coder un partie pour voir les personnes qui ont relaodé une page dans les 2 dernières minutes, basé sur une table dans Access.
 
j'ai d'abord essayé la requête suivante, mais cela semblait fonctionner une fois sur 2 (mon brower ne me faisait pas d'erreur, mais celui d'un ordinateur juste à coté oui (les 2 fois internet explorer)).
 

Code :
  1. oConnection.Execute "DELETE * FROM t_adop_connectes WHERE connectes_date < #" & CDate(replace(DateAdd("n", -2, Now),".","/" )) & "#"


 
j'ai donc remplacé par le code-spagettis suivant:

Code :
  1. <!-- Procédure personnes connectées -->
  2. <% Set oRs = oConnection.Execute ("SELECT connectes_id,connectes_date FROM t_adop_connectes WHERE connectes_code = 1" )
  3.    IF NOT oRs.EOF THEN
  4.     oRs.MoveFirst
  5.     DO WHILE NOT oRs.EOF
  6.     IF oRs("connectes_date" ) < DateAdd("n", -2, Now) THEN
  7.      oConnection.Execute "DELETE * FROM t_adop_connectes WHERE connectes_id = " & oRs("connectes_id" )
  8.     END IF
  9.     oRs.MoveNext
  10.     LOOP
  11.    END IF
  12.    oRs.Close


le gros problème, c'est que à présent j'ai des problèmes de temps. ce bout de code est lui aussi accompagné de "veaux" qui font ensembles que ça en devient inacceptable au niveau du temps.
 
Alors si qqun a la moindre idée de comment arriver à qqch d'autre que l'équivalent d'un émulateur modem 33,1, ca me serait vraiment utile!
 
merci d'avance  :jap:


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
mood
Publicité
Posté le 15-03-2003 à 19:33:31  profilanswer
 

n°334165
drasche
Posté le 15-03-2003 à 20:29:44  profilanswer
 

salut,
 
c'est ADO que tu utilises pour accéder aux données?  Tu devrais alors avoir une expression date qui ressemble plutôt à ceci: '2003-03-15' (avec les quotes au lieu des #).


Message édité par drasche le 15-03-2003 à 20:30:06

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°334177
urd-sama
waste of space
Posté le 15-03-2003 à 20:46:48  profilanswer
 

avec les quotes il me fait une erreur (syntaxe error, ou je ne sais plus quoi). avec le dièse + les quote aussi. avec rien aussi... c'est désespérant
j'utilise une connexion ado (avec fichier dsn)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°334184
drasche
Posté le 15-03-2003 à 21:08:11  profilanswer
 

ça c'est bizarre, parce que je l'ai testé avant de poster.   Je suis certain que le format de date universel passe sur ADO quelque soit la config [:gratgrat]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°334200
urd-sama
waste of space
Posté le 15-03-2003 à 21:40:38  profilanswer
 

le problème vient peut-etre des minutes, car en utilisant seulement la date du jour je n'avais aucun problème. tout ces embetements surgissent en utilisant la date et l'heure dans un meme champ ('10.02.2003 12:23:21';)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°334202
drasche
Posté le 15-03-2003 à 21:47:22  profilanswer
 

t'as encore mis des points :D
 
essaie les tirets pour la date ;)


Message édité par drasche le 15-03-2003 à 21:47:43

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°334206
urd-sama
waste of space
Posté le 15-03-2003 à 21:52:49  profilanswer
 

déjà testé avec le replace (voir première requête tout en haut)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°334209
drasche
Posté le 15-03-2003 à 21:55:35  profilanswer
 

ben d'après ta requête en haut tu finis toujours par un CDate donc ton replace ne sert en fait à rien [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°334212
drasche
Posté le 15-03-2003 à 21:57:57  profilanswer
 

oConnection.Execute "DELETE * FROM t_adop_connectes WHERE connectes_date < '" & Format(DateAdd("n", -2, Now), "yyyy-mm-dd hh:mm:ss" ) & "'"


 
à vue de nez c'est comme ça que j'écrirais ta première requête.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°334220
urd-sama
waste of space
Posté le 15-03-2003 à 22:18:40  profilanswer
 

je viens de regarder et tu as raison, en enlevant le CDate ca fonctionne. il me semblait pourtant avoir testé sans et que cela foirait, je l'avais ajouté par dépit sans penser qu'il reformattait (je croyais qu'il précisait juste le type de variable).
en tout cas ca a l'air de fonctionner cette fois, et le temps d'exécution s'en voit diminué ouf!
merci  :jap:


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
mood
Publicité
Posté le 15-03-2003 à 22:18:40  profilanswer
 

n°334222
drasche
Posté le 15-03-2003 à 22:23:40  profilanswer
 

oui, quand tu renvoies une variable de type date à une string (donc la requête ici), VB/ASP va traduire ça dans le format par défaut ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°352085
urd-sama
waste of space
Posté le 03-04-2003 à 21:45:14  profilanswer
 

mon script fonctionnait parfaitement jusqu'à avant-hier, mais depuis lundi matin ca ne fonctionne plus! Voici une liste de tout ce que j'ai essayé, avec les messages d'erreurs ou commentaires:
 

Code :
  1. "DELETE * FROM t_adop_connectes WHERE connectes_date < #" & replace(DateAdd("n", -2, Now),".","/" ) & "#"
  2. ne trouve aucun enregistrement
  3. "DELETE * FROM t_adop_connectes WHERE connectes_date < #" & DateAdd("n", -2, Now) & "#"
  4. erreur: Syntax error in date in query expression 'connectes_date < #03.04.2003 21:42:00#'.
  5. "DELETE * FROM t_adop_connectes WHERE connectes_date < '" & replace(DateAdd("n", -2, Now),".","/" ) & "'"
  6. erreur: Data type mismatch in criteria expression.
  7. "DELETE * FROM t_adop_connectes WHERE connectes_date < '" & DateAdd("n", -2, Now) & "'"
  8. erreur: Data type mismatch in criteria expression.
  9. "DELETE * FROM t_adop_connectes WHERE connectes_date < '" & Format(DateAdd("n", -2, Now), "yyyy-mm-dd hh:mm:ss" ) & "'"
  10. erreur: Type mismatch: 'Format'
  11. response.write now
  12. 03.04.2003 21:46:43
  13. un enregistrement dans la base (champ connectes_date)
  14. 03.04.2003 21:27:59


 
j'ai envoyé un email à mon hébergeur mais ils n'ont fait aucune modifs, j'ai également purgé ma table de connectes (j'ai pensé que le problème venait peut-etre du changement horaire?)
Bref, je ne sais plus quoi faire  [:jocenbsp]


Message édité par urd-sama le 03-04-2003 à 21:45:45

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°352089
MagicBuzz
Posté le 03-04-2003 à 21:50:24  profilanswer
 

Tu pas faire un truc propre genre :
 

DELETE t_adop_connectes WHERE connectes_date < Now()


 
:sarcastic:

n°352090
urd-sama
waste of space
Posté le 03-04-2003 à 21:51:03  profilanswer
 

non, je dois supprimer les personnes qui ont reloadé la page il y a 2min et + (c'est pour un chat tout moisi)


Message édité par urd-sama le 03-04-2003 à 21:51:19

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°352097
MagicBuzz
Posté le 03-04-2003 à 22:05:09  profilanswer
 

Hé ben...
 

DELETE t_adop_connectes WHERE connectes_date < DateAdd("n", -2, Now())


 
Sans passer par la construction de la date depuis l'ASP...
 
Access utilise la syntaxe VBA (donc la même qu'ASP) pour toutes les fonctions de date et de chaînes...

n°352101
urd-sama
waste of space
Posté le 03-04-2003 à 22:12:18  profilanswer
 

réponse à ta requête:
 

Code :
  1. "DELETE t_adop_connectes WHERE connectes_date < DateAdd(""n"", -2, Now())"
  2. Syntax error (missing operator) in query expression 't_adop_connectes WHERE connectes_date < DateAdd([n], -2, Now())'.


 [:spamafote]


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°352106
MagicBuzz
Posté le 03-04-2003 à 22:25:24  profilanswer
 

DELETE * FROM t_adop_connectes WHERE connectes_date < DateAdd("n", -2, Now())


 
En fait, il lui faut une liste de champs et FROM (c débile mais bon)

n°352107
urd-sama
waste of space
Posté le 03-04-2003 à 22:28:22  profilanswer
 

en effet c'est mieux.
 
"DELETE * FROM t_adop_connectes WHERE connectes_date < DateAdd(""n"", -2, Now())"
 
erreur: Too few parameters. Expected 1.


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°352109
MagicBuzz
Posté le 03-04-2003 à 22:29:53  profilanswer
 

c quelle version d'access qu'il utilise ton hébergeur :??:
 
access 2.0 ?

n°352111
MagicBuzz
Posté le 03-04-2003 à 22:30:15  profilanswer
 

essaie de virer les () à Now()

n°352112
urd-sama
waste of space
Posté le 03-04-2003 à 22:31:55  profilanswer
 

j'ai enlevé et j'ai la meme erreur
je ne sais pas la version, je peux le savoir comment?
 
edit: je vais au dodo si jamais, je continuerai demain  [:jocenbsp]


Message édité par urd-sama le 03-04-2003 à 22:33:07

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°352115
MagicBuzz
Posté le 03-04-2003 à 22:33:25  profilanswer
 

je sais pas.
 
en tout cas, ça marche sous access xp, et sous access 2k (testé)
 
sous 97 je pense que ça marche aussi. mais au-delà...

n°352143
the real m​oins moins
Posté le 03-04-2003 à 22:58:41  profilanswer
 

TOTOZ


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°353922
urd-sama
waste of space
Posté le 06-04-2003 à 13:37:04  profilanswer
 

Après quelques jours du bug, je suis encore + perplexe.
Résumons, j'ai une requête de cette syntaxe:
 
"DELETE * FROM t_adop_connectes WHERE connectes_date < #" & replace(DateAdd("n", -2, Now),".","/" ) & "#"
 
J'en ai une autre sur le meme principe, pour deleter toutes les 24 heures.
 
Jour 1: les 2 fonctionnent
Jour 2: le premier ne delete rien, le 2e fonctionne
Jour 3: le premier refonctionne, le 2e ne delete rien
Jour 4: le premier fonctionne, le 2e delete TOUT
 
je n'y comprend plus rien, d'ou peut venir un tel problème? pourquoi est-ce que mon script n'est-il pas stable??


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°353981
MagicBuzz
Posté le 06-04-2003 à 16:47:59  profilanswer
 

Déjà, essaie vraiment de trouver comment traîter les dates dans ACCESS.
 
En effet, à priori, ça ne doit pas arriver, mais si jamais le format de date dans Access est différent de celui du serveur, ça va chier.
 
Sinon, essaie vraiment d'utiliser un autre SGBD qu'Access. En effet, access c'est très bien pour générer quelques infos genre des menus personnalisés ou des CSS personnalisées (sur le site de M$ d'ailleurs, avant de passer au XML, ils bossaient avec une petite base en Access 2 pour gérer tout ce qui est menus, et cnie. J'en suis sûr, au taf on leur avait fait quelques pages :))
 
Mais access n'est pas performant du tout pour ce qui est des accès concurrents (donc il ne faut jamais avoir à écrire dedans lorque tu bosses en environnement partagé) et encore moins pour les gros volumes (chaque requête dans Access nécessite un chargement complet de toute la base !)


Message édité par MagicBuzz le 06-04-2003 à 16:49:12
n°354033
Requin
Posté le 06-04-2003 à 18:04:33  profilanswer
 

Personellement ayant été confronté au problème de settings régionaux du serveur, d'access , ... je prépare mes dates au format amerloc' (MM/DD/YYYY) avant de les ajouter à ma chaine et ca fonctionne sans problèmes. En réalité j'utilise deux fonctions qui sont indépendantes des settings régionaux, les voici :
 

Code :
  1. '
  2.    ' Format a vbDate type to it's SQL counterpart
  3.    ' pass : a valid vbDate
  4.    ' return success : date formated #mm/dd/yyyy#
  5.    ' return failure : boolean False
  6.    Function DBDate(l_dateToFormat)
  7.       ' declare vars
  8.       Dim l_strDate
  9.       Dim l_boolError
  10.      
  11.       ' init vars
  12.       l_strdate = ""
  13.       l_boolError = False
  14.      
  15.       ' check date validity
  16.       If IsDate(l_dateToFormat) Then
  17.          ' format la date au format SQL
  18.          l_strDate = "#"                   &_
  19.                      Month(l_dateToFormat) &_
  20.                      "/"                   &_
  21.                      Day(l_dateToFormat)   &_
  22.                      "/"                   &_
  23.                      Year(l_dateToFormat)  &_
  24.                      "#"
  25.       Else
  26.          l_boolError = True
  27.       End If
  28.      
  29.       ' return formated date
  30.       If l_boolError Then
  31.          DBDate = False
  32.       Else
  33.          DBDate = l_strDate
  34.       End If
  35.    End Function
  36.    '
  37.    ' Format a vbDate type to it's SQL counterpart
  38.    ' pass : a valid vbDate
  39.    ' return success : date formated #mm/dd/yyyy hh:mm:ss#
  40.    ' return failure : boolean False
  41.    Function DBDateTime(l_vbDateTime)
  42.       strResult = DBDate(l_vbDateTime)
  43.       If strResult <> False Then
  44.          strResult = Left(strResult, Len(strResult) - 1)
  45.          strResult = strResult & " " & Hour(l_vbDateTime)
  46.          strResult = strResult & ":" & Minute(l_vbDateTime)
  47.          strResult = strResult & ":" & Second(l_vbDateTime) & "#"
  48.          DBDateTime = strResult
  49.       Else
  50.          DBDateTime = False
  51.       End If
  52.    End Function


Message édité par Requin le 06-04-2003 à 18:10:12
n°354285
urd-sama
waste of space
Posté le 07-04-2003 à 07:16:07  profilanswer
 

merci pour vos infos.
je vais coder d'une autre facon mon truc, je ferai une purge "manuelle" avec le script de départ (celui qui compare la date dans un script asp, il est beaucoup plus lourd). Pour l'affichage je comparerai la date dans un condition asp pour l'afficher ou non.
changer de base de données ne doit pas être possible, mon hébergeur n'accepte apparemment que l'access.
bah, je trouverai bien une solution  [:spamafote]


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Problème de date dans requête SQL

 

Sujets relatifs
Problème PHP sur mon siteProblème de focus... [Résolu] -- Script à emporter tout chaud...
[ASP] TemplatesProbleme avec vector
Probleme de redirection automatiqueJavascript probleme !!
[Apache & PHP] Probleme de 'casse' avec mod_rewriteProblème forum xmb
petit probleme de memoire!!!problème avec JTabbedPane [Résolu]
Plus de sujets relatifs à : [ASP] Problème de date dans requête SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR