Un pointeur ne fonctionne plus

Qu’est-ce qui peut faire qu’un pointeur ne fonctionne plus ?
Je fais des modifs dans ma base mais a priori pas dans ce secteur.
Un extrait du code
<code 4D>
PRO_p_Nom_Process:=Get pointer(“◊PRO_va31_Process”+String($1))

PRO_p_Nom_Process->:=<>PRO_tt_Table_Nom_Long{<>PRO_vl_Table}
PRO_Process_Creer ($1;PRO_p_Nom_Process->)
While (((Current time-$vh_Heure)<10) & (PRO_p_Nom_Process->="")) //attendre la fin de la mise à jour dans le process lancé

End while

</code 4D>
et le débogueur
[]32011347;“Your comment here…”[/]
La variable <>PRO_VA31_PROCESS1 est bien typée en texte et PRO_p_Nom_Process en pointeur.

Une idée ?

PS :

  • ça fonctionne depuis 20 ans
  • j’ai comparé à une base plus ancienne sans trouver
  • le CSM n’a rien dit
  • j’ai déjà eu des problèmes du même genre sans avoir su d’où venait le problème
  • j’ai remplacé le nom de la variable.
  • sans rien faire, au 50e essai, ça a refonctionné ; un peu énervant…
  • j’ai supprimé le diamant ; pas de pb sur Mac ; la base a tourné 10 ans sur PC, mais peut-être qu’il y en aurait aujourd’hui.

Bonjour Bernard,

Quelques idées (à tester)

Code :
((PRO_p_Nom_Process->)="")

pour aider 4D a bien comprendre que ces un pointeur dépointé…

ou (vicieux au niveau de la lisibilité)

Code :
(""=PRO_p_Nom_Process->)

ou

Code :
(Length(PRO_p_Nom_Process->)=0)

HTH
Bruno

on peut aussi tenter:

<code 4D>
$L_Type:=Value type($P->)
</code 4D>

Ça refonctionne, je peux donc pas tester…
Mais je ne suis pas désolé que ça refonctionne !