Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

OPEN

カーソルをオープンします。

Synopsis

OPEN cursor-name

引数

cursor-name 既に宣言されている、カーソルの名前。カーソル名は DECLARE 文で指定されています。カーソル名は、大文字と小文字を区別します。

概要

OPEN 文は、カーソルの DECLARE 文で指定されているパラメータに従ってカーソルをオープンします。オープンすると、カーソルを取得できます。オープンしたカーソルは、クローズする必要があります。

既にオープンしているカーソルをオープンしようとすると、SQLCODE -101 エラーが返されます。オープンしていないカーソルをフェッチまたはクローズしようとすると、SQLCODE -102 エラーが返されます。OPEN を正常に実行できると、結果セットが空の場合でも SQLCODE = 0 が設定されます。

OPEN では、#SQLCompile Mode=Deferred プリプロセッサ指示文はサポートされていません。Deferred モードを DECLAREOPENFETCH、または CLOSE カーソル文で使用しようとすると、#5663 コンパイル・エラーが生成されます。

SQL 文として、埋め込み SQL からのみサポートされます。同様の操作は、ODBC でも ODBC API を使用してサポートされます。

以下は、EmpCursor という名前のカーソルをオープンしてクローズする埋め込み SQL の例です。

   SET name="LastName,FirstName",state="##"
   &sql(DECLARE EmpCursor CURSOR FOR 
        SELECT Name, Home_State
        INTO :name,:state FROM Sample.Person
        WHERE Home_State %STARTSWITH 'A')
   WRITE !,"BEFORE: Name=",name," State=",state 
   &sql(OPEN EmpCursor)
   IF SQLCODE '= 0 { WRITE "Open error: ",SQLCODE
                     QUIT }
   NEW SQLCODE,%ROWCOUNT,%ROWID
   FOR { &sql(FETCH EmpCursor)
        QUIT:SQLCODE  
        WRITE !,"DURING: Name=",name," State=",state }
   WRITE !,"FETCH status SQLCODE=",SQLCODE
   WRITE !,"Number of rows fetched=",%ROWCOUNT
   &sql(CLOSE EmpCursor)
   WRITE !,"AFTER: Name=",name," State=",state

関連項目

FeedbackOpens in a new tab