PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Erreur de date entre environnement de dev et serveur
Erreur de date entre environnement de dev et serveur
Débuté par Yoda, 12 juil. 2021 11:16 - 4 réponses
Membre enregistré
168 messages
Popularité : +2 (2 votes)
Posté le 12 juillet 2021 - 11:16
Bonjour,

J'ai un souci dont je ne comprends pas l'origine.

J'ai dans une appli webdev des champs date et dateheure.

Lorsque je fais un go à partir de webdev, tout est OK. Lorsque je déploie l'application sur le serveur (la base de données utilisées est la même entre l'environnement de développement et le serveur) j'ai des erreurs sur les formats de date.

La base de données c'est du SQLServer. J'y accède à partir de l'accès natif.

Je fais une requête webdev pour récupérer les données dans un champ table.
Lorsque je fais un GO sur webdev, je récupère une date "normale" (AAAAMMJJ)
Lorsque je lance l'appli sur le serveur, je récupère des données au format AAAA-MM-

Du coup, dans ma table, les données sont incorrectes ce qui bien sûr pose un problème.

Même souci au niveau des heures (voir copie écran ci-dessous).

Bizarrement, j'ai, dans une autre table de la même base, un champ dateheure qui lui fonctionne correctement. Je n'y comprends plus rien.






Si quelqu'un a déjà rencontré ce problème ou aurait une piste...

Merci d'avance.
Membre enregistré
168 messages
Popularité : +2 (2 votes)
Posté le 02 septembre 2021 - 11:18
Bon, je me réponds à moi-même, ça peut servir à d'autres.

Je ne sais pas pourquoi, mais l'accès natif ne lit pas correctement les dates/heures s'il n'y a pas un client SQLServer (et pas n'importe quelle version) d'installé sur le serveur.

Ca fonctionnait sur la station de développement car SQLServer Management studio était installé.
Membre enregistré
57 messages
Popularité : +9 (11 votes)
Posté le 02 septembre 2021 - 12:09
Bonjour,

Merci d'avoir fait suivre l'information !

Le client de la base est déterminant, il faut toujours utiliser "le bon" :
- en prod celui qui a été testé,
- ou en test celui qui va être imposé par la prod...

Il y a un billet du support qui détaille le principe, et qui a été actualisé avec des recommandations pour SQL SERVER afin de bien forcer sa version à la connexion :
https://blogs.pcsoft.fr/fr/acces-bases-donnees-client-serveur-attention-version-client/195/read.awp

--
A+
Dev-OC
Posté le 04 septembre 2021 - 09:54
Bon, je me réponds à moi-même, ça peut servir à d'autres.

Je ne sais pas pourquoi, mais l'accès natif ne lit pas correctement les
dates/heures s'il n'y a pas un client SQLServer (et pas n'importe quelle
version) d'installé sur le serveur.

Ca fonctionnait sur la station de développement car SQLServer Management
studio était installé.


bonjour

peut être est-ce comme en mysql, cela dépend de la base de données.
de mémoire, on passe une commande set_nls_date_format en mysql pour
forcer le formatage de la date pour toute la session.

ça fait très longtemps que je n'ai pas fait de sqlserver mais on
utilisait un ADO et une dll et on avait une fonction dans la classe

PROCÉDURE SetDateFormat(pformat ="JJ/MM/AAAA hh:mm:ss")
retcode is int
lformat est une chaîne ASCIIZ sur 50=pformat

retcode = AppelDLL32(:DLLName, "ADO_SetDateFormat", lformat)

RENVOYER (retcode)

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Posté le 01 juin 2023 - 13:35
Plus simple, changer le format date en datetime dans sql serveur.....