Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
bonjour,
je suis en pb 11.5.1 build 4675
je me connecte à une bas mysql vai odbc (driver 5.1)
je créé une procedure sous msql
CREATE PROCEDURE gestion_conges_db_dev.`cra_lst`( in a_id_pers int, in a_dt_deb datetime ) BEGIN DECLARE no_annee_encours int; DECLARE no_semaine_encours int; select taches_ident FROM taches; END;
cette procédure ne veux pas dire grand chose mais le problème est là
lorsque je veux récupérer cette procédure dans une datawindows j'obtient le message d'erreur suivant:
Cannot create Datawindow 'SQLSTATE = S1000 [MySQL][ODBC 5.1 Driver]{mysqld-5.5.24]Incorrect datetime value: '0' for colum 'a_dt_deb at row 2 1 execute admin.cra_lst;0 a_id_pers = :a_id_pers, a_dt_deb = :a_dt_deb'
j'ai d'autres datawindow avec des procédures et je les récupère sans problème tant que je n'ai pas de champs date (ou datetime) en paramètre .
je ne sais pas si cela provient d'une configuration de la base mysql ou de la connection odbc définie dans powerbuilder.
une petite idée?
merci par avance
Dernière modification par laurent (21-03-2013 10:02:12)
Hors ligne
Bonjour Laurent,
sans vraiment d'expérience sur les DW basées sur des SProc, juste en lisant le message on dirais que ta 2eme ligne de données contient une valeur (0) qui n'est pas compatible avec le format de données prévu (datetime)
donc je te conseillerai de vérifier tes données en DB.
c'est sûrement pas ça, trop simple, mais bon ça coûte pas grand chose à vérifier.
bonne chance.
Hors ligne
non cela ne peut être cela car la date qui pose problème correspond à un paramètre de ma procédure et n'exite pas en db.
c'est dans la constitution de la DW que le problème se pose.
toutes autres procédures qui ne possèdent pas de pramètre date en entreé fonctionnent
je créé aussi les DW avec une date en sortie en séléctionnant directement une table
merci tout de même
Hors ligne
et tu ne peux pas virer ces paramètre IN de ta SP ?
vu le code de la SP que tu as posté ils ne servent quand même à rien je me trompe ?
Sinon voir du côté des types de données, le type DateTime de MySQL est peut être différent du type datetime de PB.
c'est toujours la m.... avec ces types de données date/time/datetime ^^
P.S. utilise le DisableBind de PB pour voir ce que tu envoie comme arguments au lieu de voir ":a_dt_deb" pourra aussi peut être t'aider
Dernière modification par rincevent (01-03-2013 18:48:37)
Hors ligne
bonjour,
effectivement au vu du code poste cela ne sert à rien mais c'est juste pour avoir une procédure valide et c'est surtout que je doit écrire la proc avec cette date et j'ai d'autre procédure à venir qui seront dans la même situation.
au pire je passerais les infos dans des zones de type string
merci pour vos réponses
Hors ligne
bonjour,
n'ayant pas trouvé de solution j'applique la méthode suivante:
Lors de l'écriture de ma procédure je défini un paramètre de type string .
je récupère la procédure dans ma datawindow.
ensuite je vais modifier ma procédure pour mettre mon paramètre en datetime puis je modifie par edit source la datawindow de façon à faire correspondre les paramètres.
cdt
Hors ligne
Pages: 1