Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Est ce que je peux associer un transaction à une datawindow dans un thread et comment
Car j’ai essayé avec:
datawindow. SetTransObject(SQLCA)
à l’interieur de thread mais le système ne l’a pas accepter (null object refrence) malgé que j’ai bien créer les objets necessaire et l’epreuve que si je fait appelle au même user object en utilisant trigger event au lieu de Post event tous va bien
Hors ligne
infopower a écrit:
Code:
datawindow. SetTransObject(SQLCA)
"datawindow" c'est bien le nom du contrôle DW ?
(C'est vrai que PB laisse faire des trucs bizarres comme appeler une string "string", un long "long" et même plus tordu : on peut appeler un int "string" ou un float "string" => bonjour la maintenance du code )
infopower a écrit:
le système ne l’a pas accepter (null object refrence) malgé que j’ai bien créer les objets necessaire et l’epreuve que si je fait appelle au même user object en utilisant trigger event au lieu de Post event tous va bien
Problème de synchronisation avec le thread ? C'est possible (même si ça m'étonne) que ce bout de code soit appelé trop tôt, avant que la DW ne soit crée.
Peut-être qu'un
if isvalid(datawindow) then datawindow.settransobject(sqlca)
pourrait empêcher de planter, mais si c'est trop tôt et qu'on n'essaie pas de le refaire plus tard, ça risque seulement de ne pas configurer la transaction pour la DW...
Hors ligne
oui "datawindow" est le nom de control ce qui m'etonne si je déclare un transaction à l'exterieur du thread et je l'associe au datawindow tous va aller comme il faut mais dans le thread apparement c'est trop pour power builder
Hors ligne
Bonjour,
Il faut considérer un thread comme un programme autonome. Les variables globales et autres de ton programme principal invoquant le thread ne sont pas disponibles à l'intérieur du thread.
tu dois refaire ta connexion dans le thread comme dans ton programme principal :
CONNECT USING SQLCA;
Hors ligne
buck a écrit:
Les variables globales et autres de ton programme principal invoquant le thread ne sont pas disponibles à l'intérieur du thread.
tu dois refaire ta connexion dans le thread comme dans ton programme principal
Ça je ne savais pas.
Hors ligne