Symfoware Parallel Server RDBユーザーズガイド 応用プログラム開発編
目次 索引 前ページ次ページ

第7章 応用プログラムとトランザクション処理> 7.2 トランザクション制御の方法

7.2.3 トランザクションとカーソル操作

カーソルは、一般に、トランザクション終了時にクローズされます。しかし、カーソル指の更新可能性がFOR READ ONLYで、トランザクションの独立性水準指がREAD COMMITTEDの場合、トランザクションをCOMMITしても、カーソルはクローズされません。

図:トランザクションを超越するカーソル操作のSQL文の例に、トランザクションを超越するカーソル操作のSQL文の例を示します。

[図:トランザクションを超越するカーソル操作のSQL文の例]

EXEC SQL DECLARE CSR1 CURSOR FOR                                  (1) 
                 SELECT * FROM 取引先会社                             
                 WHERE  電話番号 LIKE  :hcomp_word                    
                 FOR    READ ONLY;                                    
                                                                      
EXEC SQL SET TRANSACTION  READ ONLY,                              (2) 
                          ISOLATION LEVEL  READ COMMITTED;            
EXEC SQL OPEN  CSR1;                                              (3) 
EXEC SQL FETCH CSR1 INTO :hnumber,:hproduct,:hstock;              (4) 
                〜                                                    
EXEC SQL COMMIT WORK;                                             (5) 
                                                                      
                                                                      
EXEC SQL FETCH CSR1 INTO :hnumber,:hproduct,:hstock;              (6) 
                〜                                                    
          (データの終了)                                            
                                                                      
EXEC SQL CLOSE CSR1;                                              (7) 

(1) カーソル“CSR1”を宣言します。

(2) トランザクションアクセスモードに“READ ONLY”を設定します。独立性水準に“READ COMMITTED”を設定します。

(3) カーソル“CSR1”をオープンします。

(4) 入力した市外局番と等しい市外局番の行にカーソルを位置づけ、その行を読み込みます。

(5) COMMITによりトランザクションを終了します。

(6) (5)でカーソルがクローズされないため、カーソルを位置づけることができます。

(7) データ終了後、カーソル“CSR1”をクローズします。


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

All Rights Reserved, Copyright(C) 富士通株式会社 2006