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 22-01-2018 16:50:47

ben147  
Membre Geek
Lieu: Paris
Date d'inscription: 20-06-2008
Messages: 63
Pépites: 287
Banque: 0
Site web

update ne fonctionne pas sur ma datastore

bonjour,
je ne comprend pas pourquoi, mon update me retourne -1.
si quelqu'un a une piste.

mon code :

Code: pb

  lds_enreg_trace_rech_veh = CREATE DATASTORE
  lds_enreg_trace_rech_veh.dataobject = 'ds_enreg_trace_rech_veh'
  lds_enreg_trace_rech_veh.settransobject(SQLCA)
  ll_row = lds_enreg_trace_rech_veh.insertrow(0)
  
  lds_enreg_trace_rech_veh.object.AGECODAGE[1] = is_codage
  lds_enreg_trace_rech_veh.object.UTLCODUTL[1] = is_codutil
  lds_enreg_trace_rech_veh.object.TRADATWSI[1] = idt_datwsi
  lds_enreg_trace_rech_veh.object.TRALIBIMT[1] = is_immat
  lds_enreg_trace_rech_veh.object.WSICODWSI[1] = is_codwsi
  lds_enreg_trace_rech_veh.object.TRADATRES[1] = idt_datres
  lds_enreg_trace_rech_veh.object.TRAINDERR[1] = is_trainderr
  lds_enreg_trace_rech_veh.object.TRACODERR[1] = is_tracoderr
  lds_enreg_trace_rech_veh.object.TRALIBMSG[1] = is_libmsg
  lds_enreg_trace_rech_veh.object.TRANUMNBV[1] = il_nb_veh
  lds_enreg_trace_rech_veh.object.TRALIBSER[1] = is_numserie
  
  ll_retour_update = lds_enreg_trace_rech_veh.update()

ma datastore est bien updatable, et tous les champs sont bien sélectionnés dans les update properties, mon  insertrow me ramène bien 1, tous les champs sont alimentés correctement, et pourtant, ll_retour_update = -1 ...
et je me demande bien pourquoi, là ?
aurais-je oublié un petit truc tout bête ?

Hors ligne

 

#2 23-01-2018 07:02:16

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

Re: update ne fonctionne pas sur ma datastore

Bonjour,

Plusieurs possibilités :
Le plus souvent le dataobject est introuvable, faute de frappe dans le nom, librairie non ajouté au projet, ... pour en être sur tu peux rajouter :

Code: pb

IF NOT IsValid(lds_enreg_trace_rech_veh.Object) THEN
   MessageBox("Error", "The datawindow lds_enreg_trace_rech_veh does not exist!")
END IF

Tu peux également tester la valeur retour de settransobject, un retour -1 indique en général également un dataobject invalide.

Sinon, il s'agit d'une erreur SQL, pour avoir accès à l'erreur SQL, pour tester, tu ajoutes ta datastore comme objet non visuel d'une fenêtre par exemple (Insert -> Object -> datastore).
A ce moment là, tu as accès à l'événement dberror qui te permet de tracer l'erreur SQL.

Hors ligne

 

#3 23-01-2018 09:03:02

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 652
Pépites: 1,135
Banque: 100,221,387,868,884,300
Site web

Re: update ne fonctionne pas sur ma datastore

Bonjour, si le dataobject était introuvable la notation objet aurait déclenchée une exception, regarde plutôt ce qu'il y a dans sqlca.sqlerrtext après l'update.


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#4 23-01-2018 09:33:59

ben147  
Membre Geek
Lieu: Paris
Date d'inscription: 20-06-2008
Messages: 63
Pépites: 287
Banque: 0
Site web

Re: update ne fonctionne pas sur ma datastore

hum j'ai mon sqlca.sqlerrtext à nul, et sqlcode à zéro , juste après le update... c'est pas normal

Hors ligne

 

#5 23-01-2018 09:43:30

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 240
Pépites: 942
Banque: 0
Site web

Re: update ne fonctionne pas sur ma datastore

Il faut récupérer la syntaxe de mise à jour depuis la routine SQlPreview() et la faire exécuter sous un éditeur pour visualiser le résultat.

Hors ligne

 

#6 23-01-2018 10:18:13

ben147  
Membre Geek
Lieu: Paris
Date d'inscription: 20-06-2008
Messages: 63
Pépites: 287
Banque: 0
Site web

Re: update ne fonctionne pas sur ma datastore

bon en fait c'est bon, j'ai trouvé ...
j'ai transformé ma datastore en datawindow visible, et au moment du update, paf, message d'erreur : c'est un probleme de foreign key. Du coup j'ai compris direct d'ou venait le problème.
c'est bizarre que la datastore ne balance pas le message d'erreur, mais bon.
bon, merci de vous être penchés sur le problème.

Hors ligne

 

#7 23-01-2018 12:24:40

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 652
Pépites: 1,135
Banque: 100,221,387,868,884,300
Site web

Re: update ne fonctionne pas sur ma datastore

ton SQLCA hérite d'un objet qui fait quelque chose en cas d'erreur peut-être ? (voir dans les propriétés de l'application : Additional Properties / Variable Types )


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22