Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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 02-09-2009 09:41:08

ElRed  
Membre
Date d'inscription: 21-08-2008
Messages: 4
Pépites: 26
Banque: 0

Connection à des bases multiples sous SQL Server 2005

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

 

#2 02-09-2009 09:48:44

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Connection à des bases multiples sous SQL Server 2005

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

Code: pb

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

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 02-09-2009 10:24:11

ElRed  
Membre
Date d'inscription: 21-08-2008
Messages: 4
Pépites: 26
Banque: 0

Re: Connection à des bases multiples sous SQL Server 2005

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

 

#4 02-09-2009 12:49:45

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Connection à des bases multiples sous SQL Server 2005

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   


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22