Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


ODBC 呼び出しにおけるビットのテスト

ODBC API によっては、ビット・マスクを設定し、ビットを照会する必要があります。ライブラリー・ルーチン iwzODBCTestBits を使用してビットを照会することができます。 iwzODBCTestBits を呼び出すアプリケーションと IWZODBC.LIB インポート・ライブラリーをリンクする必要があります。

このルーチンを次のように呼び出します。

CALL “iwzODBCTestBits” USING identifier-1, identifier-2 RETURNING identifier-3
identifier-1
フィールドはテストされます。これは、2 バイトまたは 4 バイトの 2 進数フィールド (つまり、USAGE COMP-5 PIC 9(4) または PIC 9(9)) でなければなりません。
identifier-2
テスト対象のビットを選択するビット・マスク・フィールドです。これは、identifier-1 と同じ USAGE および PICTURE を使用して定義する必要があります。
identifier-3
テストの戻り値です (USAGE COMP-5 PICS9(4) と定義します)。
0
identifier-2 で選択されたどのビットも、identifier-1ON になっていない。
1
identifier-2 で選択されたすべてのビットが、identifier-1ON になっている。
-1
identifier-2 で選択されたビットのうち、1 つ以上のビットが identifier-1 に対して ON になっていて、1 つ以上のビットが OFF になっている。
-100
無効な入力引数が検出された (8 バイトの 2 進数フィールドが identifier-1 として使用されているなど)。
 

ODBCCOB コピーブック内で定義されたビット・マスクを使用する COBOL 算術式で、1 つのフィールドに複数のビットを設定することができます。例えば、次のステートメントでは、InfoValue フィールド内に、SQL-CVT-CHARSQL-CVT-NUMERIC、および SQL-CVT-DECIMAL に対するビットを設定することができます。

COMPUTE InfoValue = SQL-CVT-CHAR + SQL-CVT-NUMERIC + SQL-CVT-DECIMAL

InfoValue を設定したら、これを 2 番目の引数として、iwzTestBits 関数に渡すことができます。

上記の算術式の各オペランドは、ODBCCOB コピーブックで定義されたとおりに、結合解除ビットを表します。結果として、加算では意図したビットが ON になるように設定されます。ただし演算子は論理 OR ではないので、このような算術式ではビットが繰り返されることがないように注意してください。 例えば、次のコードを使用すると、InfoValue 上に意図した SQL-CVT-CHAR ビットが指定されなくなります。

COMPUTE InfoValue = SQL-CVT-CHAR + SQL-CVT-NUMERIC + SQL-CVT-DECIMAL + SQL-CVT-CHAR

呼び出し時に有効な呼び出しインターフェース規約は、CALLINT SYSTEM DESCRIPTOR でなければなりません。


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)