Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 27-02-2007 21:33:45

cagoule  
Membre
Lieu: paris
Date d'inscription: 06-02-2007
Messages: 11
Pépites: 47
Banque: 0

[RESOLU] [PB 10.5] Rajouter une ligne dans une bdd

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

Code: pb

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

 

#2 28-02-2007 08:11:46

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] [PB 10.5] Rajouter une ligne dans une bdd

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

 

#3 28-02-2007 08:56:52

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] [PB 10.5] Rajouter une ligne dans une bdd

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 :

Code: pb

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 :

Code: pb

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 :

Code: pb

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

Code: pb

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

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 05-03-2007 21:36:03

cagoule  
Membre
Lieu: paris
Date d'inscription: 06-02-2007
Messages: 11
Pépites: 47
Banque: 0

Re: [RESOLU] [PB 10.5] Rajouter une ligne dans une bdd

merci de toutes vos reponses, la solution de eRaSorZ m a debloqué

c est resolu

Cagoule

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22