OPEN
Synopsis
OPEN cursor-name
引数
cursor-name | 既に宣言されている、カーソルの名前。カーソル名は DECLARE 文で指定されています。カーソル名は、大文字と小文字を区別します。 |
概要
OPEN 文は、カーソルの DECLARE 文で指定されているパラメータに従ってカーソルをオープンします。オープンすると、カーソルを取得できます。オープンしたカーソルは、クローズする必要があります。
既にオープンしているカーソルをオープンしようとすると、SQLCODE -101 エラーが返されます。オープンしていないカーソルをフェッチまたはクローズしようとすると、SQLCODE -102 エラーが返されます。OPEN を正常に実行できると、結果セットが空の場合でも SQLCODE = 0 が設定されます。
OPEN では、#SQLCompile Mode=Deferred プリプロセッサ指示文はサポートされていません。Deferred モードを DECLARE、OPEN、FETCH、または 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
関連項目
-
"Caché SQL の使用法" の “埋め込み SQL の使用法“ の章にある "SQL カーソル"
-
"Caché エラー・リファレンス" にリストされた SQLCODE エラー・メッセージ