Powerbuilder pour les completement Geeks !

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 17-04-2009 13:31:03

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

[RESOLU] Causes d'erreur sur la fonction dw.Update() ...

Bonjour,

J'ai besoin de votre expérience sur PB pour m'aider à comprendre pourquoi l'appel de la fonction Update me renvoie toujours -1

Donc j'ai une datawindow construite sur une procédure stockée qui est un simple

Code: sql

select <mes_colonnes>
from <ma_table>
where <cle_primaire> = <paramètre>


J'ai bien défini les "Updates Properties" de ma datawindow (coche de "Allow updates", "<ma_table" dans "Table to update", etc ...)


J'ai deux champs que j'ai défini comme des dropdownlistbox et c'est ceux ci qui peuvent être mis à jour.

Pour le test j'ai créé un bouton spécial pour le script de sauvegarde (après ça sera directement dans l'événement ItemChanged) :

Code: pb

integer li_code_retour

li_code_retour = dw_1.Update()

IF li_code_retour = 1 AND SQLCA.SQLNRows > 0 THEN
  MessageBox('Debug', 'UPDATE Reussi')

ELSE
  MessageBox('Debug', 'UPDATE Raté' + String(li_code_retour))

END IF


Bien sûr je tombe sur "Update raté-1" et je ne vois pas trop d'où ça pourrais venir (le retrieve fonctionne bien)

J'oubliais aussi de dire que je ne passe jamais par l'événement SqlPreview lors de l'appel de Update() (on sait jamais, ça peut aider )

Merci pour vos éclaircissements

Dernière modification par Nephtis (17-04-2009 14:50:59)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#2 17-04-2009 14:08:15

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

Re: [RESOLU] Causes d'erreur sur la fonction dw.Update() ...

Bonjour,

La raison la plus courant de l'échec d'un "update" est le non respect de l'intégrité référentielle de la base de données.

Une de tes colonnes de la table fait partie d'une clé étrangère et tu tentes de sauvegarder une valeur non autorisée dans cette colonne.

Tu sauves une valeur "null" sur une colonne alors que les propriétés de la colonne l'interdisse (valeur nulle non autorisée sur la colonne). etc ...

Il faut que tu actives la trace SQL sur la base de données pour te rendre compte de la véritable raison de l'échec de la mise à jour.

(Commence tout simplement par vérifier les propriétés de chaque colonne faisant partie de la table)

Hors ligne

 

#3 17-04-2009 14:34:03

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: [RESOLU] Causes d'erreur sur la fonction dw.Update() ...

As-tu vérifié SQLCA.SQLErrText ? Normalement, ça devrait te mettre sur la piste du problème.

Hors ligne

 

#4 17-04-2009 14:50:38

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Causes d'erreur sur la fonction dw.Update() ...

Merci FMolinas, je viens de tester le SQLErrText et j'ai reçu le message "Transaction non connectée"

Un CONNECT USING SQLCA résous donc mon problème



> Buck
C'est une table référentiel qui n'a pas de lien avec les autres tables de ma base.
Merci tout de même pour ta réponse



0000 pépites pour vous deux

[EDIT] : je suis billionnaire

Dernière modification par Nephtis (17-04-2009 14:57:07)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22