Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU - |
目次 索引 |
複数のコネクションを接続した場合、SET CONNECTION文で現コネクションを変更することができます。SET CONNECTION文を利用することにより、変更した現コネクションのサーバとデータ操作を行うことができます。
現コネクションを変更するためには、トランザクションを一度終了しなければなりません。ただし、複数のコネクションに対して、データベースを参照するSQL文のみ実行する場合は、トランザクションを終了する必要はありません。
図:現コネクションを変更するプログラミングの概要に、現コネクションを変更するプログラミングの概要を示します。
[応用プログラム]
: EXEC SQL CONNECT TO 'DB01' AS 'C1' ; … (1) : EXEC SQL SELECT 在庫数量,倉庫番号 INTO :H1, :H2 FROM 在庫表 … (2) WHERE 在庫数量=300 ; : EXEC SQL COMMIT WORK ; … (3) : EXEC SQL CONNECT TO 'DB02' AS 'C2' ; … (4) : EXEC SQL INSERT INTO 伝票( 在庫カラム, 倉庫カラム) VALUES(:H1,:H2) ; … (5) EXEC SQL COMMIT WORK ; … (6) : EXEC SQL SET CONNECTION 'C1' ; … (7) : EXEC SQL SELECT 出荷量 INTO :H3 FROM 在庫表2 WHERE XX=100 ; … (8) EXEC SQL COMMIT WORK ; … (9) : : EXEC SQL CONNECT TO 'SV3' AS 'C3' USER 'U3/PASS3' ; … (10) : EXEC SQL SELECT 在庫数量,倉庫番号 INTO :H1, :H2 FROM 在庫表1 … (11) WHERE 倉庫番号=2 ; : EXEC SQL COMMIT WORK ; … (12) : EXEC SQL CONNECT TO 'SV4' AS 'C4' USER 'U4/PASS4' ; … (13) : EXEC SQL INSERT INTO 伝票1(在庫カラム, 倉庫カラム) VALUES(:H1,:H2) ; … (14) EXEC SQL COMMIT WORK ; … (15) : EXEC SQL SET CONNECTION 'C3' ; … (16) : EXEC SQL SELECT 出荷量 INTO :H3 FROM 在庫表3 WHERE XX=100 ; … (17) : |
(1)〜(9)は、ローカルアクセスの場合です。(10)〜(17)は、リモートアクセスの場合です。
(1) 1回目のCONNECT文により、“DB01”に対して“C1”のコネクションを接続します。
(2) “DB01”の在庫表から単一行SELECT文で在庫数量と倉庫番号を取り出します。
(3) (2)の操作に対して、トランザクションを終了します。
(4) 2回目のCONNECT文により、“DB02”に対して“C2”のコネクションを接続します。
(5) “DB02”の伝票の在庫カラムと倉庫カラムに、“DB01”から取り出した在庫数量と倉庫番号を追加します。
(6) (5)の操作に対して、トランザクションを終了します。
(7) SET CONNECTION文により、現コネクションを“C1”に変更します。
(8) “DB01”の在庫表2から単一行SELECT文で出荷量を取り出します。
(9) (8)の操作に対して、トランザクションを終了します。
(10) 3回目のCONNECT文により、サーバ“SV3”に対して“C3”のコネクションを接続します。
(11) サーバ“SV3”の在庫表1から、単一行SELECT文で在庫数量と倉庫番号を取り出します。
(12) (11)の操作に対して、トランザクションを終了します。
(13) 4回目のCONNECT文により、サーバ“SV4”に対して“C4”のコネクションを接続します。
(14) サーバ“SV4”の伝票1の在庫カラムと倉庫カラムに、サーバ“SV3”から取り出した在庫数量と倉庫番号を追加します。
(15) (14)の操作に対して、トランザクションを終了します。
(16) SET CONNECTION文により、現コネクションを“C3”に変更します。
(17) サーバ“SV3”の在庫表3から単一行SELECT文で出荷量を取り出します。
目次 索引 |