Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
bonsoir
j'ai une datawindow avec 3 arguments un nombre et deux date
quand je fais un retrieve sans aucun parametre il m'affiche la fenetre afin de saisir les arguments et la j'ai mon état tout a fait correct mais quand je mets les parametres dans le retrieve (dw_1.retrieve(nbr,dat1,dat2)) la j'ai aucune ligne qui est récupérée...
une idée?
Hors ligne
le format de tes dates ? ( avec ou sans heures )
Tu peux tracer la requete qui est passé en base en mettant 'trace ...' dans DBMS de ta transaction ou le DbParm si c'est une connection "ole db"
Hors ligne
on peut voir le code ?
Hors ligne
Je travaille sous Oracle 9i, donc le format date peut être aussi en heure... moi en gros j'ai une fenetre dans la quelle j'ai deux datepicker afin de sélectionner deux date... entre ces deux date je sélectionne des données (je fais un etat avec ces données)
dans ma datawindow je selectionne donc mes données et je mets une condition sur la date pour qu'elle soit comprise entre deux dates (debut et fin), je précise que debut et fin dont de type date...
dans ma fenetre ou j'ai les datepicker je récupere les deux dates sélectionnées et je fais un retrieve avec ces deux date... mais la rien ne s'affiche!!!
j'ai bien fait attention à récupérer la date seulement
Dernière modification par disneb (29-08-2008 06:50:58)
Hors ligne
en Oracle les dates sont toutes des datetimes en fait...
si tu as deux retrieval arguments de type date il faut faire dans la requête :
to_char( colonne_date, 'yyyymmdd' ) between to_char( :ra_date1, 'yyyymmdd' ) and to_char( :ra_date2, 'yyyymmdd' )
Hors ligne
SELECT ecriture.num_piece, ecriture.num_lign, ecriture.int_ecriture, ecriture.debit, ecriture.credit, ecriture.num_cpt, ecriture.cpt_tiers, ecriture.dat, ecriture.num_journ, journal.int_journ FROM ecriture, journal WHERE ( journal.num_journal = ecriture.num_journ ) and ( ( ecriture.num_dos = :dos ) AND ( ecriture.dat >= :debut ) AND ( ecriture.dat <= :fin ) ) ORDER BY ecriture.num_journ ASC, ecriture.dat ASC
ça c'est ce que j'ai fait pour selectionner les données de ma datawindow
time tt,ttt dp_fin.getvalue(debut,tt) dp_debut.getvalue(fin,ttt) open(w_journ)
et ça c'est ce que j'ai dans ma fenetre (ou je récupere la date)
et pour le retrieve
dw_1.settransobject(sqlca) dw_1.(retrieve(1,debut,fin)
j'ai même essayer de faire un date(debut) et un date(fin) mais pareil
Hors ligne
toujours la même chose avec to_char
Hors ligne
Déclare date et fin en datetime et non pas en date
Hors ligne
déja essayé
Hors ligne
que donne la trace (afin d'avoir la requete passé en base ) ?
Probleme de convertion de format de date ?
l'année prise est 2008 ou 1908 ?
Hors ligne
Salut Disneb,
Dans ton painter Database, as tu déclaré un format de date?
sinon essaye Date Format : dd/mm/yy pour voir
Hors ligne
l'année est bien 2008
Hors ligne
je ne sais pas trop ce qui s'est passé, mais après la nieme tentative, j'ai recréé une autre fenêtre j'ai remis la même datawindow, et ça a marché... et après on me dira qu'on traite en sciences exactes...
bon bein mon probleme est reglé même si mon mystere reste non résolu
Hors ligne
C'est un soucis récurrent : les dates.
En effet, en fnct du SGBDR, de son paramêtrage, etc, on a tjrs des soucis avec les dates.
Pour ton cas, je vois deux solutions :
- Tu réalises un convert (je ne connais la fnct sous oracle) d'un string de format date
- ou tu passes un datetime pb. La, c'est un peu coton sous PB, je trouve.
En effet, tu dois passer ton argument sous la forme : dw_madw.retrieve(datetime(date(ls_madate), time('00:00:00'))), ou si ta variable est du format
date, simplement dw_madw.retrieve(datetime(ld_madate, time('00:00:00'))).
Généralement, je préfére formatter ma date sous sql, voire même convertir un champ date en char sous la forme yymmdd et travailler en string sous pb.
En espérant t'avoir été utile.
Cpo
Hors ligne
// **********************
// Message de modération :
// **********************
Ajout de la mention [RESOLU]
Doctor Z.
Hors ligne