Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
bonjour à tous!
je fais mon retour avec cette question: " pouvons nous nous connecter à plusieurs bases à la fois avec powerbuilder?"
je dois faire un transfert de données d'une base à une autre (sql anywhere à DBASE) et j'aurais aimé me connecté simultanément aux deux bases
merci
Dernière modification par disneb (18-03-2009 16:42:11)
Hors ligne
Oui c'est possible.
Dans l'environnement de dev, il suffit de connecter plusieurs profiles (un seul est le profil actif), mais cela permet d'utiliser l'objet pipeline (voir l'aide PB sur cet objet qui est également utilisable dans le code PB...)
Dans le code PB, il faut définir plusieurs objets transaction. Celui par défaut (SQLCA) est déclaré au niveau des propriétés avancées de l'objet application (onglet properties). Pour définir une nouvelle connexion il faut un autre objet transaction qu'il faut déclarer, instancier, renseigner et enfin connecter.
Exemple avec deux connexions ODBC
// transaction peut être remplacé par un autre objet hérité de l'objet transaction // (menu new puis standard class type de l'onglet PB Object) transaction sqlcb sqlcb = create transaction sqlca.DBMS = "ODBC" sqlca.DbParm = "ConnectString='DSN=ma_base_1',CommitOnDisconnect='No'" sqlcb.DBMS = "ODBC" sqlcb.DbParm = "ConnectString='DSN=ma_base_2',CommitOnDisconnect='No'" connect ; // par défaut using sqlca; connect using sqlcb;
Ensuite il suffit de dire à PB quelle connexion utiliser pour travailler sur les bases
avec une DW
dw_1.SetTransObject(sqlca) // DW connectée à la base 1 dw_2.SetTransObject(sqlcb) // DW connectée à la base 2
avec du sql embarqué
select cli_id into :ll_id from client using sqlca; // ID lu dans la base 1 select cli_id into :ll_id2 from client using sqlcb; // ID lu dans la base 2
Hors ligne
Bonjour,
Juste un complément sur un problème que j'ai eu lors de ma première mise en œuvre des "pipeline" en mode compilé.
Il ne faut pas oublier de déployer avec l'application le fichier pbodbXX.ini (XX : version PB), sinon le "pipeline" ne fonctionne pas.
Hors ligne
merci à vous c'est
bonne soirée
Hors ligne