Datetime et SqlServer

Résolu
zouheir_ali Messages postés 23 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 2 juillet 2007 - 2 janv. 2007 à 14:23
zouheir_ali Messages postés 23 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 2 juillet 2007 - 8 janv. 2007 à 15:29
Bonjour à tous,

Je travaille avec vfp6 et sqlserver.
dans une table sqlserver j'ai un champ de type datetime, une grille dans vfp est remplie avec une requête et je peut modifier directement dans la grille. le problème c'est le champ datetime qui est montré dans la grille avec la date et l'heure et moi je voudrais seuleument la date. j'ai essayé avec convert de sqlserver il me renvoie bien seuleument la date, mais lors de la saisie d'une date dans la grille le contrôle sur la date ne se fait plus.
Merci

6 réponses

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
8 janv. 2007 à 14:03
Ton problème vient de l'absence de controlsource spécifié pour tes colonnes.

Quand tu ne spécifies pas de controlsource, VFP affecte à chaque colonne un controlsource qui est le champ de l'alias, avec son type: donc si tu fais un convert(varchar..., tu récupères un champ de type C dans ta colonne (donc dans ton textbox), et VFP n'a aucun moyen d'applique un controle de validité sur ce controle.

Si tu gardes cette conversion, tu dois écrire le code de la méthode valid du textbox ; si tu ne gardes pas la conversion (tu conserves un type datetime), tu vas regarder du côté des propriétés Format et InputMask pour afficher le contenu comme une date.
3
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
2 janv. 2007 à 14:56
Bonjour,

Quand tu dis requète, tu parles d'un qpr, ou bien d'une vue ou de SPT?
Que veux-tu dire par "le contrôle sur la date ne se fait plus."?
0
zouheir_ali Messages postés 23 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 2 juillet 2007
2 janv. 2007 à 16:09
Bonjour Michel,


je parle de spt. lors de la saisie de la date dans la grille je tape par exemple 31/13/2006 la date est accepté ce qui n'est pas le cas car dans la requête je fais un convert(varchar(10),resa2.dateannul,103) as dateannul et c'est juste vu qu'il renvoie un varchar. si dans la requête je ne fais pas de conversion c'est à dire qu'il me renvoie le champ de type DateTime, il affichela date et l'heure (c'est normal), si je reprend le curseur et je fais un
replace all dateannul with ttod(dateannul) il m'affiche toujours la date et l'heure.

Merci
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
3 janv. 2007 à 14:58
Peux-tu donner ici le code de ta requète SPT, s'il te plait?
Si tu exécute ta requète en dehors du form (pour ne pas être "parasité" par la grille), et que tu regardes le curseur résultant, quelle est le type du champ dateannul?
Comment as-tu construit ta grille, comment et quand lui affectes-tu son recordsource et le controlsource de ses colonnes?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zouheir_ali Messages postés 23 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 2 juillet 2007
5 janv. 2007 à 09:47
Bonjour Michel,

Ma requête est :
Select champ1,champ2, dateannul from matable
Si je fais un rapatriement des données sans conversion du champ dateannul, dans la grille est affiché la date et l'heure.
Si je fais une conversion convert(varchar(10),dateannul,103) as dateannul j'ai bien seuleument la date, mais si je saisie dans la grille une date non valide elle est acceptée.
Le recordsourcetype de la grille est Instruction SQL.
je n'utilise pas de controlsource des colonnes.


A+
0
zouheir_ali Messages postés 23 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 2 juillet 2007
8 janv. 2007 à 15:29
Bonjour Michel,

Merci pour les explications sans toi je crois que je n'aurais eu aucune aide. un grand Bravo à Michel.
0
Rejoignez-nous