複数 DB に接続した状態で SQLSA を使用した動的 SQL を実行する

PowerBuilder Tips

方法

SQLSA を使用した動的 SQL を複数のデータベースに実行するには、使用するトランザクションオブジェクトを PREPARE 文で指定します。

アプリケーションから複数のデータベースに接続するには下記の Tips を参照してください。

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

【例】ラジオボタン (rb_1) によって、取得するシステム日時の SQL Server 先を変更する(トランザクションオブジェクト「SQLCA」は DB サーバ – 1 に接続、トランザクションオブジェクト「SQLCA2」は DB サーバ – 2 に接続)

datetime ldt_server_date
string ls_servername

// カーソルを宣言
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA;

IF rb_1.checked THEN
    ls_servername = "サーバ - 1"
    // DBサーバ - 1 からシステム日時を取得
    PREPARE SQLSA FROM "SELECT GETDATE()" USING SQLCA;
ELSE
    ls_servername = "サーバ - 2"
    //DBサーバ - 2 からシステム日時を取得
    PREPARE SQLSA FROM "SELECT GETDATE()" USING SQLCA2;
END IF

// カーソルをオープン
OPEN DYNAMIC my_cursor;

// DB サーバーのシステム日時を取得し ldt_server_date にセット
FETCH my_cursor INTO :ldt_server_date;

// 取得したシステム日付を表示
MessageBox(ls_servername, String(ldt_server_date))

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilderとは? ~デキる大人へ変身できる?ローコード開発ツール~