begin process at 2008 08 29 02:41:15
1 233 485 membres
26 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Contrôle d'erreur ADO sur System.DateTime [ Archives Visual Basic / Bases de données ] (bletec)

Contrôle d'erreur ADO sur System.DateTime le 22/12/2004 09:49:23

bletec

Bonjour,

J'interroge une base de données ODBC d'un logiciel de Gestion Electronique de Documents "Alchemy". Si on définit un champ de type 'Date' dans une telle base, sa valeur par défaut est 'Null' !

Dans une appli .Net, si j'interroge la base et que ma requête tente d'extraire un enregistrement dont la valeur d'un champ de type Date est 'Null', le requête s'arrête, et j'obtiens le message d'erreur suivant:

"L'argument spécifié n'était pas dans les limites de la plage des valeurs valides. Nom du paramètre : Les paramètres Year, Month et Day décrivent un DateTime qui ne peut pas être représenté."

J'ai essayé de changer des paramètres de la connection, sans succès.

Y-a-t-il un moyen d'ignorer cette erreur, afin de pouvoir remplacer
ces satanés 'Null' par une Date '0' arbitraire ?

La même requête à travers Access remplace les 'Null' pas 1er Janvier 1980 ! J'espère qu'ADO.Net peut en faire autant...

---
BL

Re : Contrôle d'erreur ADO sur System.DateTime le 22/12/2004 10:26:28

labout

labout

pour éviter ce genre de problème, je n'utilise jamais de champ date mais des champs texte ou varchar et cela simplifie grandement.
@+

Re : Contrôle d'erreur ADO sur System.DateTime le 22/12/2004 10:57:28

bletec
Certes, c'est ce que j'ai fait dans un premier temps, mais on prive l'utilisateur des fonctions de recherche spécifiques aux dates: Avant le... Après le... Entre le... et le ... .

Merci quand-même ;-)

Je m'en sors avec un prétraitement systématique de la base.
Si ID est une clé unique et maDate un champ de type Date:

SELECT ID From maBase WHERE maDate<'0000-01-01'

et si cette requête sort des enregistrements:

UPDATE maBase SET maDate='1900-01-01' WHERE maDate<'0000-01-01'

Mais c'est une perte de temps que je voudrais éviter en ignorant l'erreur ADO.Net.

Je cherche à surcharger la méthode OdbcDataReader.GetDateTime pour gérer l'erreur et retourner un date par défaut. Sans succès jusqu'à présent.

Des idées dans ce sens ?

---
BL

Re : Contrôle d'erreur ADO sur System.DateTime le 22/12/2004 11:05:04

labout

labout

Mais non cela n'empeche en rien il suffit de définir les champs
text et y mettre la date en string au format yyyymmdd ainsi toutes les fonctions de recherche sur les dates peuvent être utilisées. Il suffit ensuite de traduire par le code.

@+

Re : Contrôle d'erreur ADO sur System.DateTime le 22/12/2004 11:42:14

bletec

Oui je comprends bien, MAIS j'interroge une base GED d'un logiciel appelé Alchemy qui dans son fonctionnement pour les utilisateurs est une boîte noire! Je n'ai pas la possibilité de redéfinir les recherches sur les dates pour les utilisateurs du logiciel. Moi je dois réaliser des opérations sur les bases depuis l'extérieur, par des requêtes SQL.

Le format de données Date est donc une contrainte que je ne peux contourner et je dois gérer l'abération générée par ce logiciel qui met Null au lieu d'une date arbitraire par défaut.


---
BL

Re : Contrôle d'erreur ADO sur System.DateTime le 08/08/2008 11:54:41

phppro
Bonjour,

je sais que cette discussion remonte à 4 ans mais google ne trouve que votre discussion  avec le même message d'erreur que moi ...

base {System.ArgumentException} = {"Les paramètres Year, Month et Day décrivent un DateTime qui ne peut pas être représenté."}

Je cherche aussi un moyen de contré ce problème tout en sachant que je ne peut modifier les infos de la base càd pas d'update ni de transformation en type text ou autre....

Comment t'y es tu pris afin de surcharger cette methode ?

Merci pour vos réponses par avance, je ne trouve pas de solution depuis un mois et je déprime

[b][size=4]PAR PHPPRO[/size=4][/b][Code][/Code]

Re : Contrôle d'erreur ADO sur System.DateTime le 08/08/2008 11:54:41

phppro
Bonjour,

je sais que cette discussion remonte à 4 ans mais google ne trouve que votre discussion  avec le même message d'erreur que moi ...

base {System.ArgumentException} = {"Les paramètres Year, Month et Day décrivent un DateTime qui ne peut pas être représenté."}

Je cherche aussi un moyen de contré ce problème tout en sachant que je ne peut modifier les infos de la base càd pas d'update ni de transformation en type text ou autre....

Comment t'y es tu pris afin de surcharger cette methode ?

Merci pour vos réponses par avance, je ne trouve pas de solution depuis un mois et je déprime

[b][size=4]PAR PHPPRO[/size=4][/b][Code][/Code]


Classé sous : base, date, ado, erreur, datetime

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS