dc_ist_write
名称
ISTテーブルへレコードの出力
形式
ANSI C ,C++の形式
#include <dcist.h>
int dc_ist_write(int istid,struct DC_ISTKEY *keyptr,int keyno,
char *bufadr,int bufsize,DCLONG flags)
K&R版 C の形式
#include <dcist.h>
int dc_ist_write(istid,keyptr,keyno,bufadr,bufsize,flags)
int istid;
struct DC_ISTKEY *keyptr;
int keyno;
char *bufadr;
int bufsize;
DCLONG flags;
機能
指定した範囲のレコードを,ISTテーブルに出力します。複数のレコードを一括して指定した場合に,指定したレコードのうち一つでもエラーが起こると,出力バッファにはレコードを出力しないでdc_ist_write関数はエラーリターンします。
dc_ist_write関数が正常に終了すると,自ノードのレコードの内容が更新されます。他ノードのISTテーブルへは,この関数が正常に終了してから,時間をおいて更新されます。
ISTテーブルへレコードを出力するときは,dc_ist_open関数で返されたリターン値のテーブル記述子を設定します。
UAPで値を設定する引数
●istid
アクセスするISTテーブルの,テーブル記述子を設定します。
●keyptr
出力するレコードの相対レコード番号の範囲を示す構造体(ISTキー)のアドレスを設定します。構造体には,レコードの範囲を先頭と最後の相対ブロック番号で設定します。構造体の形式は次のとおりです。
struct DC_ISTKEY {
int fstrecno;
int endrecno;
};
●keyno
keyptrで設定する構造体の数(構造体の配列数)を設定します。
●bufadr
出力する更新データがあるバッファのアドレスを設定します。
●bufsize
出力バッファ長を設定します。出力バッファ長には,(出力レコード長 × 出力レコード数)の値を設定してください。
●flags
DCNOFLAGSを設定します。
リターン値
リターン値 | リターン値(数値) | 意味 |
---|---|---|
DC_OK | 0 | 指定したレコードは,すべて正常に出力しました。 |
DCISTER_PROTO | -3800 | ISTテーブルへアクセスする関数を呼び出す順序が間違っています。 |
DCISTER_BADID | -3803 | istidに設定したテーブル記述子は正常にオープンして得られたテーブル記述子ではありません。 |
ISTテーブルをオープンしていません。 | ||
DCISTER_BUFER | -3804 | すべてのレコードを出力するには,bufsizeに設定した出力バッファ長が足りません。 |
DCISTER_RNOER | -3806 | 相対レコード番号が間違っています。 |
DCISTER_NOMEM | -3807 | メモリが不足しました。 |
DCISTER_PARAM_KEYNO | -3809 | keynoに設定した値が,1未満です。 |
DCISTER_PARAM_FLAGS | -3811 | flagsに設定した値が間違っています。 |
DCISTER_BUFOV | -3841 | 出力バッファ長が,出力するすべてのレコード長の合計よりも長過ぎます。 |