Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編


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;
                   };
  • fstrecno

    アクセスするレコードの,先頭の相対レコード番号を設定します。

  • endrecno

    アクセスするレコードの,最後の相対レコード番号を設定します。0を設定した場合は,fstrecnoで設定した相対レコード番号のレコードだけを出力します。

●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

出力バッファ長が,出力するすべてのレコード長の合計よりも長過ぎます。