Je développe une application qui synchronise des devis/commande entre Sage et un site web. Sage est sur un système windows et le site sur un système linux/mysql.
Lorsque je remonte les informations du site web vers sage, je mets à jour l'entete F_DOCENTETE ainsi :
- Code: Tout sélectionner
UPDATE F_DOCENTETE SET LI_NO=:a, DO_DATELIVR=:b, DO_STATUT=:c, CBMODIFICATION=:d WHERE DO_DOMAINE=0 AND DO_TYPE=0 AND DO_PIECE=:f
Cette requête fonctionne pour plein de ligne et plante sur une avec le message "domaine de validité du champ incorrect"
Mon log m'affiche la requête suivante après substitution des paramètres :
- Code: Tout sélectionner
UPDATE F_DOCENTETE SET LI_NO=994, DO_DATELIVR="31/03/2005", DO_STATUT=2, CBMODIFICATION="01/06/2007 15:04:37" WHERE DO_DOMAINE=0 AND DO_TYPE=0 AND DO_PIECE="DV050209"
Quelqu'un saurait il pourquoi cette requete plante alors que d'autres fonctionne ?
Note: je développe en delphi via le driver odbc. les champs date sont typé en AsDate dans delphi.
EDIT :
En regardant mieux, il ne s'agit pas de la requete de mise à jour de l'entete mais une requete de suppression des lignes de devis.
Dans mon fonctionnement, je prend les devis sage et je les mets sur la base du site internet. Ensuite je remonte les données du site vers sage. Pour être sur d'avoir la même chose si un devis est modifié sur le site, je supprime les lignes du devis dans sage et je recrée les lignes en fonction de celle du site.
Je fait donc la requete suivante :
- Code: Tout sélectionner
DELETE FROM F_DOCLIGNE WHERE DO_DOMAINE=0 AND DO_TYPE=0 AND DO_PIECE=:a
C'est cette ligne qui plante et je ne sais aps pourquoi avec le message 'Domaine de validité du champs incorrect". Le domaine et le type sont bon (c'est bien un devis) et le n° de devis est bon (puisque que je viens de faire un update de l'entete juste avant).
Ce code fonctionne pour plein de devis avant qu'un ne plante.
Quelqu'un aurait il une explication ?
Merci.


