Après windows pour les nuls, voici PB pour les bons (ou presque).

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