Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
avant tout était simple : Une appli, une base...Que des procedure stocké
Appli A-> Base A
Appli B-> Base B
J'ai maintenant 1 datawindow (connecté à la base A) qui doit etre utilisé par les 2 applis.
Plusieurs solutions m'apparaissaient.
1) Utiliser le meme transaction object et mettre le nom de la base de donnee dans la datawindow exemple :
procedure="1 execute dbo.Ma_Procedure;1 " devient procedure="1 execute Base_A.dbo.Ma_Procedure;1 "
Avantage : Un objet connexion
Probleme. Cette datawindow contient des DropDownDataWindows et du coup, il faut aussi que je fasse cela sur chaque datawindows appelé (sachant que le seul moyen que j'ai trouvé pour préfixé l'appel par le nom de la base est de le mettre à la main dans le source de la datawindow.
Question : Il y a un moyen d'automatiser le préfixe de la base de donnée
2) utiliser 2 transaction object
Comme je suis un gros fainéant, je me suis dit JE DUPLIQUE mon Trans_B en Trans_A et je modifie genre:nv_transaction Trans_A
Trans_A=create nv_transaction
Trans_A=Trans_B
Trans_A.database="Base_A"
Sauf qu'évidement, ca ne marche pas puisque Trans_A=Trans_B crée un pointeur vers le même objet et que, du coup, la suite du code modifie l'objet (Trans_B et Trans_A pointe sur le même objet)
....Et là, c'est ma question toute bête : Comment on duplique un objet en PB (un truc genre Trans_A=new Trans_B) ?
Merci
PS : Si vous avez une autre méthode, je suis preneur
Dernière modification par ElRed (02-09-2009 09:48:39)
Hors ligne
Bonjour,
pour dupliquer une transaction A vers B, tu peux écrire une fonction de clonage des propriétés de A qui retourne une nouvelle transaction B, du genre
f_transaction_clone( Transaction A ) Return Transaction Transaction B B = Create Transaction B.DBMS = A.DBMS B.LogID = A.LogID B.LogPass = A.LogPass B.Database = A.Database B.UserID = A.UserID B.DBPass = A.DBPass B.Lock = A.Lock B.DBParm = A.DBParm B.AutoCommit = A.AutoCommit B.ServerName = A.ServerName // etc Return B
Hors ligne
Merci , c'est ce que je craignais...oui, bon, ca m'a pris 5mn (plus que pour écrire mon message ) mais je suis un gros fainéant qui pensait qu'il y avait une méthode plus générique pour dupliquer un objet en PB !
Bon, ca marche comme ca je vais pas chercher plus loin...
Hors ligne
création de la fonction, copier-coller du script, replace A et B = 2 minutes
et encore, t'as de la chance, l'objet système transaction n'a que des primitives comme variables d'instance... sinon il aurait fallu faire les clones de chaque sous-objet... voire sur plusieurs niveaux
Hors ligne