Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

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 12-09-2008 15:35:44

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

[RESOLU] Problème d'update sur une DataWindow

Bonjour, j'ai un soucis lors de l'execution d'un update (dw.update())
j'ai bien définit des propriétés d'update mais ce message apparait à l'execution :

DataWindow doesn't have UPDATE capability

d'où cela peut t'il venir ?

les propriètés d'update sont les suivantes :

allow update : coché
la table est choisie dans la liste déroulante
Where clause for uodate : Key Columns
Key modification : use update
la colonne a updater est bien selectionnée ainsi que les clefs primaire de la table concernée.
Identity column : none

Dernière modification par julien (12-09-2008 16:52:16)

Hors ligne

 

#2 12-09-2008 15:47:57

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4685
Pépites: 1,025
Banque: 2,147,483,647
Site web

Re: [RESOLU] Problème d'update sur une DataWindow

salut,
comment est construit ta dw ?
tu utilises une requete simple ? ou une jointure ? ou une procédure stockée ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 12-09-2008 15:52:29

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Problème d'update sur une DataWindow

Ma requete est défini dans le code comme ceci :

Code: pb

ls_NewSyn = ' SELECT Client_Doc.CD_OuiNon, Documents_Legaux.DL_LibDoc, Client_Doc.CD_RefClient, Client_Doc.CD_NumDoc '&
    + 'FROM Client_Doc, Documents_Legaux '&
    + 'WHERE Documents_Legaux.DL_NumDoc = Client_Doc.CD_NumDoc '&
    + 'AND Client_Doc.CD_RefClient = ' + '"' + ls_Client +'"'  & 
    + 'AND Client_Doc.CD_NumDoc <> 10 '&
    + 'AND Client_Doc.CD_NumDoc in (SELECT Client_Doc.CD_NumDoc '&
                    + ' FROM Client_Doc '&
                    +' WHERE Documents_Legaux.DL_FRFR = 1 OR Documents_Legaux.DL_FRFR =  null)' 

dw_client.SetSQLSelect(ls_NewSyn)
dw_client.retrieve()


le champs devant etre mis à jour est : Client_Doc.CD_OuiNon

Hors ligne

 

#4 12-09-2008 15:59:26

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Problème d'update sur une DataWindow

Je crois me souvenir que si tu modifies l'ordre select il faut respecifier la table a updater


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#5 12-09-2008 16:00:11

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4685
Pépites: 1,025
Banque: 2,147,483,647
Site web

Re: [RESOLU] Problème d'update sur une DataWindow

le retrieve fonctionne ? il ne manque pas un setransobject(sqlca) ?

sinon, tu as essayé de créer une datawindow via ce select ? et tester ensuite le retrieve, l'update.


allow update : coché
la table est choisie dans la liste déroulante   LAQUELLE ?
Where clause for uodate : Key Columns       LESQUELLES ?
Key modification : use update
la colonne a updater est bien selectionnée ainsi que les clefs primaire de la table concernée.
Identity column : none


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#6 12-09-2008 16:01:34

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Problème d'update sur une DataWindow

ah ok, et ca peut se faire en code ? ( desolé je commence tout juste powerbuilder ! )
si oui, quel est la fonction le permettant ?

merci

Hors ligne

 

#7 12-09-2008 16:13:45

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Problème d'update sur une DataWindow

Code: pb

<DW Control Name>.Object.DataWindow.Table.UpdateTable

Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#8 12-09-2008 16:23:10

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Problème d'update sur une DataWindow

je dois juste mette le nom de ma datawindow et ca devrait marcher ??

Hors ligne

 

#9 12-09-2008 16:43:45

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 748
Pépites: 1,028,846
Banque: 171,170,849,654

Re: [RESOLU] Problème d'update sur une DataWindow

non,
Lorsque tu utilises la méthode SetSQLSelect et tu modifies l'ordre des colonnes (ou la définition des colonnes) dans le select ou le non de la table à mettre à jour, les paramètres de mise à jour que tu as sélectionné dans l'IDE son réinitialisé.

Tu dois donc resélectionnée toutes les propriétés de l'IDE par le code. Tu trouveras çi-dessous un petit extrait d'une partie de mon code à adapter à ta situation :

Code: pb

  dw_1.Object.DataWindow.Table.UpdateTable = "nom de la table"
  
    
  // An integer indicating which columns will be included in the WHERE clause of the Update statement. 
  // The value of UpdateWhere can impact performance or cause lost data when more than one user accesses 
        // 2 Key and modified columns (allows more valid updates than 1 and is faster but not as fast as 0).
  dw_1.Object.DataWindow.Table.UpdateWhere =  0
  
  // Whether the key column can be updated in place or whether the row has to be deleted and reinserted. 
      // No  Use a DELETE and an INSERT statement when the key is changed.
  dw_1.Object.DataWindow.Table.UpdateKeyInPlace  = 'yes'
  
    FOR li_i = 1 TO UpperBound(as_primarycolumn)
    dw_1.Modify( as_primarycolumn[li_i] + ".Key=Yes")
  NEXT
    
    FOR li_i = 1 TO li_nbrecol
    dw_1.Modify( lds_column_liste.GetItemString(li_i, 'cname' ) + ".update = 'yes'" )
  NEXT  

Hors ligne

 

#10 12-09-2008 16:51:42

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Problème d'update sur une DataWindow

ca fonctionne, merci a tous, en fait j'ai trouvé la solution dans l'aide de PB !!

Code: pb

dw_client.Modify("DataWindow.Table.UpdateTable = ~"Client_Doc~"")
dw_client.Modify("CD_OuiNon.Update = Yes")

dw_client.update()

COMMIT USING SQLCA;

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22