Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Débuter
Débuter Forum d'entraide pour débuter avec Firebird
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 08/02/2005, 14h59   #1
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Par défaut [IB6 free] Date maxi en base ?

J'ai effectué une petite recherche dans ce forum pour trouver que le format date admissible dépendait du format date positionné sur le serveur.

Je n'ai pas encore vérifé ce format sur le serveur (en W2K pro), mais j'ai cependant une "curiosité" à évoquer:

Une table comporte une colonne en DATE.

L'appli peut y stocker une date via un DateTimePicker dont la valeur par défaut est 31/12/2100.

Lors de l'insert, une exception de conversion monte disant que cette date n'est pas valide ????

=> y a t'il une limite (date max) pour Interbase ?

D'autre part, en mode fiche sous IBExpert, je peux modifier cette date coté serveur. Une sorte de DatePicker le permet (pas d'erreur de manip possible donc).
Mais, quand je positionne la date au 8 fév 2005, l'affichage devient
Citation:
02/08/2005


et, quand j'appelle cette ligne dans l'appli, c'est pourtant 08/02/2005 qui s'affiche....

Bref, j'y perd mon peu de latin

et je me demande si le 31/12/2100 n'est pas interprété comme un format MM/JJ/AAAA pour lequel le mois 31 n'existe bien sûr pas.....
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2005, 16h52   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Ahhh les dates vaste sujet de problèmes et confusions.

Pour commencer les dates sous IB sont enregistrer physiquement dans un double precision(partie entière le nombre de jour depuis une date de référence (constante) et la partie decimale (utilisé pour les timestamp) correspond aux nombre de millisecondes dans cette journée.

Donc autant dire qu'il se fout complètement de nos problèmes de représentation des dates.

Autre chose à savoir IB/FB serveur se foutent également du paramétrage régionnale windows du serveur. Et ceci afin d'éviter d'avoir un comportement différent entre une installation WIN et autre.

Donc comment bien gérer les dates :
Sous Delphi/BC++ si on utilise les composant DB il n'y a pas de problemes.
Si on doit utiliser une date provenant d'une variable, utiliser toujours l'affectation à travers un field.AsDate := MaDate; ou requete paramétrée IBQ.ParamByName('MA_DATE').ASDate := Date; ne pas utiliser si possible une chaine.

Sinon si on laisse IB convertir la chaine voiçi ce qu'il faut faire :
Toujours utiliser le format 'AAAA/MM/JJ' ou 'AAAA-MM-JJ' qui a le mérite de ne pas préter à confusion. Car hélas IB ne reconnait pas le format Français, par contre il reconnait le format américain 'MM-JJ-AAAA', donc si on lui passe une chaine de type 'ZZ-EE-RRRR' il va forcément penser que c'est le format américain et donc ZZ pour le mois, EE pour les jours et RRRR pour l'année.

Les composants Delphi/BC++ sont sensible au paramétrage régional de windows, donc il faut faire attention à ça. Il est possible de définir rien que pour votre appli ce paramétrage si vous compter faire une appli ayant la même interface quelque soit la langue.

Pour IBExpert vous n'avez pas du le franciser et donc l'affichage des dates se fait à la mode anglaise.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2005, 22h26   #3
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Bon, après quelques vérif, j'ai opté pour 1 fonction qui met la date au format AAAA.MM.JJ ... Elle est donc prête pour le stockage dans IB.

Merci encore.
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 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 00h44.


 
 
 
 
Partenaires

Hébergement Web