dc_tam_open
名称
TAMテーブルのオープン
形式
ANSI C ,C++の形式
#include <dctam.h>
DCLONG dc_tam_open(char *tblname,DCLONG flags)
K&R版 C の形式
#include <dctam.h>
DCLONG dc_tam_open(tblname,flags)
char *tblname;
DCLONG flags;
機能
TAMテーブルをオープンします。dc_tam_open関数は,トランザクション内でもトランザクション外でも呼び出せます。
トランザクション内で呼び出して,排他種別にテーブル排他を設定した場合,更新排他でテーブル排他を確保します。
dc_tam_open関数がエラーリターンした場合は,この関数内で確保した資源はすべて解放して,関数を呼び出す前の状態に戻ります。
UAPで値を設定する引数
●tblname
オープンするTAMテーブル名を設定します。TAMテーブル名は32文字以内で設定して,文字列の最後にはヌル文字を付けてください。
●flags
テーブル排他を掛けるかレコード排他を掛けるかを,次の形式で設定します。
〔{DCTAM_TBL_EXCLUSIVE〔|{DCTAM_WAIT|DCTAM_NOWAIT}〕|DCTAM_REC_EXCLUSIVE}〕
このフラグの設定を省略した場合は,DCTAM_NOWAITが仮定されます。
flagsに設定する値と,設定内容の関係について,次に示します。
フラグ1※1 | フラグ2※2 | flagsの設定内容 |
---|---|---|
TBL_EXCLUSIVE | WAIT | テーブル排他,排他エラー時は解除待ち |
NOWAIT | テーブル排他,排他エラー時はエラーリターン | |
REC_EXCLUSIVE | × | レコード排他 |
リターン値
リターン値 | リターン値(数値) | 意味 |
---|---|---|
正の整数 | テーブル記述子を示します。 | |
DCTAMER_PARAM_TBL | -1701 | tblnameに設定した値が間違っています。 |
DCTAMER_PARAM_FLG | -1708 | flagsに設定した値が間違っています。 |
DCTAMER_NOTTAM | -1709 | tblnameに設定したテーブルはTAMテーブルではありません。 |
DCTAMER_UNDEF | -1710 | TAMテーブルが定義されていません。 |
DCTAMER_TAMEND | -1720 | TAMサービスが終了中です。 |
DCTAMER_PROTO | -1721 | TAMテーブルへアクセスする順序が間違っています。 |
UAPにリンケージしているトランザクション制御用オブジェクトファイルのリソースマネジャ登録が間違っています。 または,UAPにトランザクション制御用オブジェクトファイルをリンケージしていません。 | ||
関数を呼び出したUAPのユーザサービス定義に,トランザクション属性なし(atomic_update=N)を指定しています。 | ||
DCTAMER_NOLOAD | -1724 | TAMテーブルがロードされていません。 |
DCTAMER_OPENED | -1725 | TAMテーブルがオープン済みです。 |
DCTAMER_LOGHLD | -1727 | TAMテーブルが論理閉塞状態です。 |
DCTAMER_OBSHLD | -1728 | TAMテーブルが障害閉塞状態です。 |
DCTAMER_LOCK | -1736 | 排他エラーが起こりました。flagsにDCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間のタイムアウトのため,資源を確保できませんでした。 |
DCTAMER_DLOCK | -1737 | デッドロックが起こりました。 |
DCTAMER_TBLVR | -1760 | UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。 |
DCTAMER_FLSVR | -1761 | UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。 |
DCTAMER_TAMVR | -1762 | UAPが,現在稼働しているTAMサービスでは動作できないバージョンのTAMライブラリと結合されています。 |
DCTAMER_RECOBS | -1764 | レコードが破壊されています。 |
DCTAMER_TRNNUM | -1765 | TAMサービスで管理できるトランザクション数を超えています。 |
DCTAMER_OPENNUM | -1766 | キャラクタ型スペシャルファイルのオープン数の制限値を超えています。 |
DCTAMER_ACCESSS | -1767 | スペシャルファイルに対するアクセス権がありません。 |
DCTAMER_ACCESSF | -1768 | TAMファイルに対するアクセス権がありません。 |
DCTAMER_MEMORY | -1769 | メモリが不足しました。 |
DCTAMER_IO | -1770 | 入出力エラーが起こりました。 |
DCTAMER_TMERR | -1771 | トランザクションサービスでエラーが起こりました。 |
DCTAMER_NO_ACL | -1772 | オープンしようとしたTAMファイルは,セキュリティ機能で保護されています。該当するファイルに対するACLがありません。 |