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 15-01-2015 08:22:42

John77  
Membre Geek
Lieu: Chambéry
Date d'inscription: 26-10-2012
Messages: 51
Pépites: 227
Banque: 0

[RESOLU] "Ligne ou colonne de Datawindow invalide" uniquement en mode compilé

Bonjour

Les développements de la dernière version de mon application PB étant terminé, testé et fonctionnant correctement je compile en Full pour tout retester après compilation avant de l'envoyer à l'équipe qui s'occupe du packaging pour la télédistribuer aux utilisateurs. J'avais eu la surprise sur ma version précédente d'avoir un Find qui plante uniquement en version compilé car l'expression contenait un LookUpDisplay sur une DDDW. Problème contourné en ajoutant la colonne de libellé dans un champs caché.

Et là, j'ai la surprise de me prendre une erreur "Ligne ou colonne de Datawindow invalide" à l'enregistrement des données de la DataWindow principale de l'appli.
Je reteste en mode Run, aucun problème!

Je fais un Optimize de toutes mes pbl, fais un Full Build (on ne sait jamais) et régénère l'appli, l'erreur se produit à nouveau

Ca fait 2 jours que je me casse la tête à chercher et je commence à désespérer.

Y a-t-il un moyen de savoir où ça coince?

Dernière modification par John77 (15-01-2015 09:30:07)

Hors ligne

 

#2 15-01-2015 09:29:07

John77  
Membre Geek
Lieu: Chambéry
Date d'inscription: 26-10-2012
Messages: 51
Pépites: 227
Banque: 0

Re: [RESOLU] "Ligne ou colonne de Datawindow invalide" uniquement en mode compilé

Depuis 2 jours, je repassais sur toutes mes modifications depuis la version précédente et ajoutais des MessageBox avant et après chaque appels de Get/SetItem.
Il y a 5 minutes, j'ai fini par trouver

Nouvelle bizarrerie, cette fois-ci le code impliqué aurait du planter en mode Run mais ne le faisait pas.

Code:

idwc_iechservice.GetItemString(idwc_iechservice.GetSelectedRow(0), 'chabrege')

Evidemment, en repassant dessus, je me suis aperçu que sur cette ligne d'un morceau de code que j'avais déporté depuis l'ItemChanged, si le GetSelectedRow renvoyait 0, ça ne pouvait être bon.

Mais du coup, je m'interroge sur la raison qui faisait que ça ne plantait pas.

Bon, désolé pour le dérangement.

Hors ligne

 

#3 15-01-2015 10:12:41

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] "Ligne ou colonne de Datawindow invalide" uniquement en mode compilé

John77 a écrit:

Mais du coup, je m'interroge sur la raison qui faisait que ça ne plantait pas.

Dans une vie précédente et une galaxie très, très lointaine... j'ai bossé sur PB5 et à l'époque j'ai pu avoir de gros moments de solitude lorsque notre client a testé l'application après qu'on l'ait compilé en "code machine" et envoyée à 400 km de là : rien ne fonctionnait et ça plantait partout !

La raison était (est encore ?) qu'on avait omis d'initialiser beaucoup de variables. Le malheur c'était qu'entre la version interprétée et la version compilée le comportement était différent car l'interpréteur initialise les numériques à 0 et les chaines à "vide" alors qu'en version compilée ces variables étaient nulles...

Je n'ai plus d'expérience avec le mode "compilé" depuis (sauf pour quelques tests sur la VM) et je ne sais pas si il faut encore être aussi prudent.
Ceci dit, mettre une valeur par défaut dans une variable est une bonne pratique, hein


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#4 16-01-2015 08:11:12

John77  
Membre Geek
Lieu: Chambéry
Date d'inscription: 26-10-2012
Messages: 51
Pépites: 227
Banque: 0

Re: [RESOLU] "Ligne ou colonne de Datawindow invalide" uniquement en mode compilé

PB5!
J'ai découvert cette version il y a un peu plus de 2 ans, au début de ma présente mission. Un debugger sans pile d'exécution, jamais réussis à trouver l'affichage de la liste des contrôles présents sur une DataWindow, une navigation entre les évènements et les fonctions des fenêtres affreuse, ... Si bien que j'avais insisté assez rapidement pour migrer en 11.5

Depuis, le développement est plus aisé mais j'ai PB qui plante régulièrement quand je quitte le mode Run. PB est une maîtresse capricieuse ^^
Tu avais essayé de me donner un coup de main avec HollyDBG, si je me souviens bien, Seki.

Un ancien collègue m'a un jour parlé de la propriété de l'objet application FreeDBLibraries mais je ne l'ai jamais testé.

Sinon, quand j'ai découvert PB il y a 14 ans sur ma toute première mission (c'était la 6.5) j'ai aussi expérimenté la disparité des comportements entre le Run et le compilé en code machine. Comme les profs m'avaient toujours affirmé la supériorité de la vitesse d'exécution du code machine par rapport à l'interprété, je m'étais acharné à essayer de comprendre pourquoi avant que les autres développeurs me disent de laisser tomber ce mode de compilation.

Dernière modification par John77 (16-01-2015 08:16:08)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22