Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
bonjour,
je suis nouveau sous PB donc svp soyez indulgent
j aimerais rajouter une ligne a ma base de donnees en recuperant les donnees d une sle
datastore new new = create datastore new.dataobject = 'new' new.settransobject(gtrans) new.insertrow(0) execute Insert into "ma_table" ("titre","annee") values (:sle_titre,:sle_annee) using gtrans
bon je sais qu il y a une erreur mais je ne vois pas ou, si quelqu un sait d ou cela vient
merci
Dernière modification par cagoule (27-02-2007 21:34:51)
Hors ligne
Dans un premier temps pour récupérer les données de tes sle il faut que tu fasses sle_titre.text et sle_annee.text
Hors ligne
Salut,
pour insérer une ligne dans la base tu as 2 méthodes :
1) datawindow ou datastore
cela correspond à la 1ère partie de ton code,
en considérant que le script SQL de ta d_new
ressemble à
select titre,annee from ma_table
et que tu as bien défini les update properties, initialisation :
datastore ds_new ds_new= create datastore ds_new.dataobject = 'd_new' ds_new.settransobject(gtrans) ds_new.insertrow(0)
Ensuite tu affectes les valeurs à la main :
ds_new.Object.titre[ ds_new.GetRow() ] = sle_titre.text
ds_new.Object.annee[ ds_new.GetRow() ] = Long( sle_annee.text )
Et pour finir tu enregistres :
If ds_new.Update( ) <> 1 Then ROLLBACK USING gtrans ; MessageBox( 'Enregistrement non effectué', '' ) Else COMMIT USING gtrans ; MessageBox( 'Enregistrement effectué', '' ) End If Destroy ds_new
2) script SQL
cela correspond à la 2ème partie de ton script
String ls_titre = sle_titre.text Long ll_annee = Long( sle_annee.text ) INSERT INTO INTO MA_TABLE (TITRE,ANNEE) VALUES (:ls_titre,:ll_annee) USING gtrans; IF gtrans.SQLCode = -1 THEN ROLLBACK USING gtrans ; MessageBox( 'Enregistrement non effectué', gtrans.SQLErrText ) Else COMMIT USING gtrans ; MessageBox( 'Enregistrement effectué', '' ) End If
Hors ligne
merci de toutes vos reponses, la solution de eRaSorZ m a debloqué
c est resolu
Cagoule
Hors ligne