Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU -
目次 索引 前ページ次ページ

第2章 アプリケーションの設計

2.1 コネクション

ここでは、コネクションの概要、コネクションの接続および切断について説明します。

■コネクションとは

コネクションとは、クライアントのアプリケーションがサーバのSymfoware/RDBデータべースにアクセスするために、クライアントとサーバの間を結んだ接続関係のことです。アプリケーションがデータベースシステムとコネクションをもつことによって、そのデータベースシステムの資源を操作することができます。

■コネクションの接

アプリケーションとサーバとのコネクションの接続は、CONNECTで行います。また、コネクションを接続することにより、SQL文を実行することができます。

■コネクションの切

アプリケーションとサーバとのコネクションの切断は、DISCONNECTで行います。コネクションの切断は、CONNECT文で接続したコネクションに対して実行できます。また、トランザクションは終了した状態で実行します。

コネクションのプログラミング概要を以下に示します。

[アプリケーション]

:
EXEC SQL  CONNECT TO  'DB01' AS 'C1';                          … (1)
                          :
EXEC SQL
 SELECT 在庫数量, 倉庫番号 INTO  :H1, :H2 FROM S.T             … (2)
                                          WHERE 倉庫番号=2 ;
                          :
EXEC SQL  COMMIT WORK ;                                        … (3)
                          :
EXEC SQL  DISCONNECT  'C1' ;                                   … (4)
                          :
              :
EXEC SQL  CONNECT TO  'SV1'  AS 'C2'  USER 'U/PW' ;            … (5)
                          :
EXEC SQL
 SELECT  在庫数量, 倉庫番号 INTO  :H1, :H2 FROM S1.T1          … (6)
                                           WHERE 倉庫番号=2 ;
                          :
EXEC SQL  COMMIT WORK ;                                        … (7)
                          :
EXEC SQL  DISCONNECT  'C2' ;                                   … (8)
                          :

(1)〜(4)は、ローカルアクセスの場合です。(5)〜(8)は、リモートアクセスの場合です。

(1) CONNECT文にデータベース名を指定することにより、ローカルのサーバ上にある“DB01”に対して“C1”のコネクションを接続します。

(2) コネクションを接続した“DB01”に対して単一行SELECT文を実行します。

(3) “DB01”に対してのトランザクションを終了します。

(4) DISCONNECT文により、“DB01”に対して“C1”のコネクションを切断します。

(5) CONNECT文にSQLサーバ名、ユーザID、パスワードを指定することにより、リモートのサーバ“SV1”に対して“C2”のコネクションを接続します。

(6) コネクションを接続した“SV1”に対して単一行SELECT文を実行します。

(7) “SV1”に対してのトランザクションを終了します。

(8) DISCONNECT文により、“SV1”に対して“C2”のコネクションを切断します。


下へ2.1.1 コネクションの接続方法
下へ2.1.2 複数コネクション
下へ2.1.3 コネクションを意識しないデータ操作の方法
下へ2.1.4 マルチRDB運用のコネクション

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007-2008