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

PowerBuilder Tips

方法

アプリケーションから同時に複数のデータベースに対して接続し処理を行うにはデータベースの接続ごとにトランザクションオブジェクトを 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

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?