lebasketeur
Messages postés36Date d'inscriptionvendredi 17 avril 2009StatutMembreDernière intervention13 avril 2010
-
6 juin 2008 à 16:59
lebasketeur
Messages postés36Date d'inscriptionvendredi 17 avril 2009StatutMembreDernière intervention13 avril 2010
-
9 juin 2008 à 11:20
Salut, mon probleme c'est dans une requête SQL. Je travaille mon application VB 6.0 avec SQL Server.
Voila c'est la requête :
A.DtArrivee Between #" & Format$(DxtSrhDtFin.Value, "MM\/DD\/YYYY") & "# And #" & Format$(DxtSrhDtDebut.Value, "MM\/DD\/YYYY") & "# Order By DtArrivee
N.B : Sous Access la requête marche très bien, mais non pas sous SQL Server.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 juin 2008 à 18:52
Salut
VB6 et tu postes ta question en .Net
Faut déjà être un peu logique
Catégorie modifiée
Ta requète est bien écrite, tu as bien fait attention aux syntaxes, ça devient rare !
La seule chose que je vois :
- mais qui ne devrait pas te pénaliser, c'est le "A." qui manquerait après le Order By
- dans ta syntaxe, tu spécifies la date de Fin avant la date de Début.
Peut-être qu'un des moteur est plus intelligent que l'autre ...
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 6 juin 2008 à 21:14
Salut
La méthode pour les dates dans SQL server qui fonctionne toujours est de passer par les parametres des commandes.
Il n'y a pas besoin de gerer les ' pour les chaines de caractéres les #pour les dates, les conversions pour les dates,
c'est ADO qui gere tout.
Et ton format est tres bizarre
"MM\/DD\/YYYY" --> je mettrai MM/DD/YYYY ou DD/MM/YYYY
Sous access il y a un probleme entre les 2 formats il fonctionne en anglais avec vb6 et en francais
par exemple 13/12/2005 (13 decembre 2005) --> francais poour access et 5/12/2005 (12 mai 2005 pour access)
C'est un bug d'access mais en sqlserver, je ne pense pas qu'il existe.
lebasketeur
Messages postés36Date d'inscriptionvendredi 17 avril 2009StatutMembreDernière intervention13 avril 2010 6 juin 2008 à 22:26
Merci Jack pour la modification de cathégorie, j'ai fait la remarque mais c'etait trop tard.
Pour ma requete je vais essayé de supprimer les # et suivre les intructions de Casy et Nhervagult.
Merci ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 juin 2008 à 18:44
@ nhervagault
Non, même si un langage peut s'occuper de reconnaitre les types, il vaut mieux toujours être le plus précis possible afin d'éviter que le langage ne fasse d'erreur d'interprétation.
@ lebasketeur
Et pense à tester l'inversion les dates début-fin avant de toucher à ta syntaxe.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 8 juin 2008 à 00:23
Justement l'utilisatation permet d'éviter les problemes d'interprétation des parametres
de plus il y a une augmentation des performance car la base de données sait optimiser des requetes parametres (du moins dans les bases de données de types serveur et peut etre celle de type burautique comme access mais la c'est pas sur)
lebasketeur
Messages postés36Date d'inscriptionvendredi 17 avril 2009StatutMembreDernière intervention13 avril 2010 9 juin 2008 à 11:20
ReSalut,
Après plusieurs tentatives .... supprimer les # inverser les dates debut-fin, travailler avec Convert ..... Toujours sans résultats.
je viens d'essayer :
A.DtArrivee Between " & Format(DxtSrhDtFin.Value, "yyyy-mm-dd h:nn:ss") & " And " & Format(DxtSrhDtDebut.Value, "yyyy-mm-dd h:nn:ss") & " Order By A.DtArrivee
Mais là il me donne l'erreur suivante :
Erreur d'exécution '-2147217900 80040e14 :
Ligne 1 : syntaxe incorrecte vers 10