DBFRSUPは、DBCHCLのRun Startup関数です。
DBFRSUPは、データベースにリクエストを送信し、データベースに格納されているStartup Requestを実行します。
どのように機能するか
この始動リクエストは、STARTUP句を含むCREATE USER文またはMODIFY USER文によってデータベースに格納されたTeradata SQLリクエストです。
- セッションが活動状態であれば、活動状態のリクエストが完了するまで待ちます。
- 前のリクエストがCONで、その処理が成功していない場合は、エラー メッセージ「unable to initiate because session is not logged on(セッションにログオンしていないため、開始できません)」が表示されます。 この戻りエラーを受け取った場合には、アプリケーションでDBFDSCを呼び出さなければなりません。
- アプリケーションでオプションの更新を要求していた場合には、オプションの設定/検証ロジックを実行します。
- リクエスト バッファの大きさが十分なことを確かめます。
- 次のように、リクエスト バッファ内にリクエストを作成します。
- Response Modeの設定値に基づいてレコード モード、フィールド モード、または標識モードのどれかでリクエスト パーセルを作成します。
- Using Presence Bitsの設定値に基づいてレコード モードまたは標識モードのどちらかで入力データ パーセルを作成します。
- (Keep Responseの設定値に基づいて)RespパーセルまたはKeepRespパーセルを作成します。
- 処理に成功しなければ、クリーンアップして、アプリケーションに戻ります。
- Open Requestなどを設定して、呼び出し側に戻ります。
始動リクエストの実行依頼
- DBFRSUP関数のDBCHCLを呼び出します。
- その戻りコードがゼロであることを確認します。
ゼロの戻りコードは、Teradata SQLリクエストが成功したことを意味しません。リクエストがデータベースに送られた(初期状態が正常である)ことを意味します。クライアントでリクエストの処理に成功した場合には、データベースはそのリクエストを処理し、Teradata SQL応答の最初の部分(1バッファ分)をクライアントに送ります。リクエストの処理に成功したことを検証するためには、DBFFET関数のDBCHCLを呼び出し、応答ストリームの最初のパーセルがErrorパーセルまたはFailureパーセルではないことを確かめます。
成功する始動リクエスト操作
- DBFRSUP関数のDBCHCLを呼び出します。
- その戻りコードがゼロであることを確認します。
- DBFERQ関数のDBCHCLを呼び出します。
- その戻りコードがゼロであることを確認します。
応答が「消費」されるか不要になるまでの手順については、DBFFETを参照してください(巻き戻しが必要な場合は、DBFREWとDBFFETを参照してください)。
アプリケーション プログラムで、最初にDBFCON関数のDBCHCLを呼び出さずにDBFRSUP関数のDBCHCLを呼び出した場合には、DBCHCLは戻りコード"first do a connect(最初に接続してください)"(NO SESSION 304)を返します。
DBFRSUP関数のDBCHCLの呼び出しによってゼロ以外の戻りコードが生じた場合には、始動の実行の処理は失敗しており、その戻りコードの値が理由を示します。 存在していないリクエスト用のCLI内部構造体は、DBFERQ関数のDBCHCLを呼び出すことによって割り当てを解除することができます(解除しなければなりません)。 DBFRSUP関数のOutput Request Idの値を、DBFERQ関数のInput Request Idとして与えます。
始動リクエストにUSING句を含むことはできません。 したがって、Use Presence Bitsの値が読み取られて格納されます。ただし、使用されません。
インターフェース
DBFRSUPインターフェースは、次のとおりです。
関数: | DBFRSUP - RunStartUp |
目的: | DBFRSUPの実行 |
パラメータ: |