アプリケーションから複数のDBに接続する
2020/12/02

方法
アプリケーションから同時に複数のデータベースに対して接続し処理を行うにはデータベースの接続ごとにトランザクションオブジェクトを 1 つずつ用意して処理を行います。グローバルオブジェクトの SQLCA とは別に独自にトランザクションオブジェクトを宣言し作成することでアプリケーションから複数のデータベースに接続できます。
また、SQL に USING 句を追加して、それぞれのトランザクションオブジェクトを指定することができます。
【例】
デフォルトトランザクションオブジェクト(SQLCA)を使用して SQL Anywhere データベースに接続します。 また、ORATrans という独自に作成したトランザクションオブジェクトをグローバル変数で宣言し使用して、Oracle データベースに接続します。
[グローバル変数の宣言]
// Oracle トランザクションオブジェクトをグローバル変数で宣言
Transaction ORATrans
[接続処理]
// デフォルトトランザクションオブジェクトのプロパティを設定 SQLCA.DBMS = "ODBC" SQLCA.DBParm = "ConnectString='DSN=anywheresample;UID=testid;PWD=testpwd'" // SQL Anywhere データベースに接続 CONNECT USING SQLCA; // Oracle トランザクションオブジェクトのインスタンス生成 ORATrans = CREATE TRANSACTION // Oracle トランザクションオブジェクトのプロパティを設定 ORATrans.DBMS = "ORA Oracle" ORATrans.Database = "oraclesample" ORATrans.LogID = "testUser" ORATrans.LogPass = "testPWD" ORATrans.ServerName = "sampleserver" // Oracle データベースに接続 CONNECT USING ORATrans; // SQL Anywhere データベースの SAMPLETABLE1 テーブルに行を挿入 INSERT INTO SAMPLETABLE1 ( 12345, 'ABCDE' )USING SQLCA; // Oracle データベースの SAMPLETABLE2 テーブルに行を挿入 INSERT INTO SAMPLETABLE2 ( 67890, 'VWXYZ' )USING ORATrans; // SQL Anywhere データベースとの接続を切断 DISCONNECT USING SQLCA; // Oracle データベースとの接続を切断 DISCONNECT USING ORATrans; // Oracle トランザクションオブジェクトを破棄 DESTROY ORATrans
Tips情報
プロダクト :PowerBuilder
バージョン :2017R3