# CHAPTER 4: マニュアルページ

本章はユーティリィティおよびmrルーチンに関するマニュアルページを提供 します。ユーティリィティのマニュアルページは$EMPRESSPATH/manディレクトリに保存 されていて、コマンドを使用して表示することができます。

- UNIXでは、`nroff -man filename`を指定します。

- Windowsでは、`type`または`more`コマンドを使用します。

以下に、ユティリティのマニュアルページの一覧を示します。

  カテゴリ | サブカテゴリ | コマンド
  C/C++ API |  | `empc++`
  |  | `empcc (UNIX)`

下記はアルファベット順でのmrルーチンのためのマニュアルページ一覧です。

  msclean | msdtfsta | msend
  msexit | msexitcleanup | msinit
  mspsm_free | mspsm_malloc | mspsm_realloc
  mspsm_trig_abort_operation | mspsm_trig_get_record_info |  |
  mradd | mraddend |
  mrbuktxtcrt | mrbuktxtlen |
  mrcldict | mrclose | mrcompare
  mrcontrol | mrcopyi | mrcopyr
  mrcopyv | mrcvt | mrcvti
  mrcvti2 | mrcvtin | mrcvtv
  mrcvtv2 |  |
  mrdel | mrdelend |
  mreabort | mrebegin | mrecons
  mrecvarg | mreend | mrefree
  mrefunc | mreicvar | mreivar
  mrenull | mrerecattr | mrerrmsg
  mrerun |  |
  mrfree | mrfrrec |
  mrganame | mrgdtpar | mrget
  mrgetbegin | mrgetend | mrgeti
  mrgetptr | mrgetrec | mrgetvi
  mrgetvs | mrgfunc |
  mrigeta |  |
  mrlkrec | mrlktab |
  mrmalloc | mrmkrec | mrmptvi
  mrmptvs | mrmutexlock | mrmutexunlock
  mrngeta | mrnullr | mrnullv
  mropdict | mropen |
  mrprev | mrprterr | mrput
  mrputi | mrputvi | mrputvs
  mrqand | mrqatr | mrqcon
  mrqdb | mrqexpr | mrqieq
  mrqlst | mrqmch | mrqnot
  mrqnul | mrqor | mrqrng
  mrqseq |  |
  mrrealloc | mrreget | mrreprev |
  mrsetnr | mrsetnv | mrspv
  mrsrtbegin | mrsubbegin | mrsubend
  mrsubgeti | mrsubputi |
  mrtadd | mrtdel | mrtget
  mrtgfunc | mrtgtbegin | mrtopdict
  mrtopen | mrtprev | mrtput
  mrtqatr | mrtqcon | mrtqmch
  mrtqnul | mrtqrng | mrtrcancel
  mrtrcommit | mrtrrollback | mrtrsave
  mrtrstart | mrtsrbegin |
  mrulrec | mrultab |

# msclean

DESCRIPTION | `msexit`で呼び出され、プログラムの終了直前に実行されるプロシージャ をスタック上に配置します。`msclean`に受け渡されるプロシージャは、 `msexit`が呼び出す最後から２番目のプロシージャです。
SYNOPSIS |
    void   msclean (void (* proc) (void))
USAGE |
    msclean (proc ());
`proc` | 呼び出されるプロシージャです。
RETURNS | なし。
WARNINGS | この関数は、将来マルチスレッドをサポートするために、変更される予定である ことに注意してください。 この関数はスレッドセーフではありません。スレッドの内部で使用してはいけません。

# msdtfsta

DESCRIPTION | この関数は、`TEXT`、`NLSTEXT`、`BULK` データタイプのフィールドに対して、データの挿入や更新の処理時間を改善するために 使用されます。
SYNOPSIS |
    void   msdtfsta (msbool enable)
USAGE |
    msdtfsta (enable);
`enable` | 値が`true`の場合には、データの挿入や更新の時にはテンポラリファイルを 使用せずに、Empress内部バッファからデータベースファイルへ直接保存され ます。`false`の場合は、オーバーフローデータの格納のために、 テンポラリファイルが使用されます。
RETURNS | なし。
WARNINGS | `msdtfsta`を使用した場合、データをを保存するのに使用される バッファは、`mradd`または`mrput`が呼び出されるまで変更されない ことを保証しなくてはならないことに注意してください。 この関数は、プログラミング言語(mx,mr,プリコンパイラ) でのみ使用されるように意図されています。`CREATE TABLE`、 `ALTER TABLE`などのような、任意のデータ定義言語(DDL)コマンドと共に使用 してはいけません。よってこの関数を、DDL文を実行する`mscall`関数と共に 使用してはいけません。

# msend

DESCRIPTION | この関数は、プログラムを終了せずにクリーンアッププロシージャを呼び出します。
SYNOPSIS |
    void   msend (void)
USAGE | `msend ();`
RETURNS | なし。
WARNINGS | なし。

# msexit

DESCRIPTION | この関数は、プログラムを終了する前に、`msexitcleanup`を呼び出し ます。そしてシェルに値を返します。
SYNOPSIS |
    void   msexit (int value)
USAGE |
    msexit (value);
`value` | シェルに返す数値。
RETURNS | なし。
WARNINGS | `msexit`から呼び出される最終プロシージャは、ユーザプロシージャが スペースを解放したかをチェックします。解放されていない場合、警告メッセージを 出力します。 この関数はスレッドセーフではありません。スレッドの内部で使用してはいけま せん。

# msexitcleanup

DESCRIPTION | この関数は、プログラムを終了することなくクリーンアッププロシージャを 呼出します。
SYNOPSIS |
    void msexitcleanup (void)
USAGE |
    msexitcleanup ();
RETURNS | なし。
WARNINGS | なし。

# msinit

DESCRIPTION | `mscall`、mx、mrルーチンの初期化を行います。
SYNOPSIS |
    msbool   msinit (void)
USAGE |
    msinit ();
RETURNS | 成功した場合は、trueを返し、それ以外は、falseを返します。
WARNINGS | なし。

# mspsm_free

DESCRIPTION | mspsm_mallocで割付けられたスペースを解放します。
SYNOPSIS |
    void   mspsm_free (char* space)
USAGE |
    mspsm_free (space);
`space` | `mspsm_malloc`から返されるポインタです(char*)。
RETURNS | なし。
WARNINGS | この関数は、パーシステント・ストアド・モジュール（PSM）内で使用されます。 この関数はスレッドセーフではありません。スレッドの内部で使用してはいけません。

# mspsm_malloc

DESCRIPTION | パーシスタントストアドプロシージャ（PSM）内で、データを格納するスペース を割付けます。
SYNOPSIS |
    void*   mspsm_malloc (int size)
USAGE |
    space = mspsm_malloc (size);
`space` | パーシスタントストアドモジュール（PSM）内で使用する、割付けられたスペースの ポインタ(void*)です。
`size` | 割付けられたスペースのサイズです。
RETURNS | パーシスタントストアドモジュール（PSM）内で使用する、割付けられたスペースのポインタ(void*)です。
WARNINGS | Empress RDBMS内部で解放されるまで、スペースが割り付けられ続け ます。PSMの内部のスペースを解放する必要がある場合、Empressの`mspsm_free` 関数を使用します。 この関数はスレッドセーフではありません。スレッドの内部で使用してはいけま せん。

# mspsm_realloc

DESCRIPTION | `mspsm_malloc`で割付けられたスペースサイズを変更します。
SYNOPSIS |
    void*   mspsm_realloc (void* space, int size)
USAGE |
    realloc_space = mspsm_realloc (space, size);
`realloc_space` | パーシスタントストアドプロシージャの内部で使用するために、割付けられた ポインタ(void*)です。
`space` | パーシスタントストアドプロシージャの内部で使用するために、以前に割付けられた ポインタ(void*)です。
`size` | 割付けられたスペースサイズです。
RETURNS | パーシスタントストアドプロシージャの内部で使用するために、割付けられた ポインタ(void*)です。
WARNINGS | Empress RDBMS内部で解放されるまで、スペースが割り付けられ続け ます。 この関数はスレッドセーフではありません。スレッドの内部で使用してはいけま せん。

# mspsm_trig_abort_operation

DESCRIPTION | この関数はトリガプロシージャ内で使用され、対応する操作を異常終了させ ます。
SYNOPSIS |
    void   mspsm_trig_abort_operation (void)
USAGE |
    mspsm_trig_abort_operation ();
RETURNS | なし。
WARNINGS | 操作前にトリガが起動された場合には、操作は中止されます。 この関数はスレッドセーフではありません。スレッドの内部で使用してはいけま せん。

# mspsm_trig_get_record_info

DESCRIPTION | この関数はトリガプロシージャ内で、テーブル記述子とレコード記述の取得の ために使用されます。
SYNOPSIS |
    void   mspsm_trig_get_record_info (void** pmr,
                                   void** poldrec,
                                   void** pnewrec)
| USAGE |
    mspsm_trig_get_record_info (pmr, poldrec, pnewrec);
`pmr` | テーブル記述子への間接ポインタです。
`poldrec` | 古いレコード記述子の間接ポインタです。(操作前のレコード)
`pnewrec` | 新しいレコード記述子の間接ポインタです。(操作後のレコード)
RETURNS | なし。
WARNINGS | 記述子のスペースは、システムによって割当て、解放が行なわれます。 この関数は、列トリガで実行されければなりません。 `FOR EACH ROW`オプションを指定しなくてはなりません。 詳細は、 Manual A4: Empress SQLリファレンスのCREATE TRIGGERを参照してください。 `poldrec`と`pnewrec`の有効性は、トリガのタイプに依存し ます。 `UPDATE`トリガは、既存のレコード`poldrec`と新しいレコード `pnewrec`を参照することができます。 `INSERT`トリガは、新しいレコードを単に参照することができます。 古いレコードの値は意味がありません。 `BEFORE DELETE`トリガは、古いレコードを単に参照することができます。 新しいレコードの値は意味がありません。 `AFTER DELETE`トリガは、古いレコードも新しいレコードの値も意味が ありません。 この関数はスレッドセーフではありません。スレッドの内部で使用してはいけ ません。

# mradd

DESCRIPTION | テーブルにレコードを挿入します。失敗した場合は呼び出しプログラムを 終了します。
SYNOPSIS |
    void   mradd (addr record_desc)
USAGE |
    mradd (record_desc);
RETURNS | なし。
WARNINGS | `mradd`を呼び出した後には、`mraddend`を呼び出しクリーン アップしてください。

# mraddend

DESCRIPTION | グループの挿入を終了します。
SYNOPSIS |
    void   mraddend (addr record_desc)
USAGE |
    mraddend (record_desc);
RETURNS | なし。
WARNINGS | なし。

# mrbuktxtcrt

DESCRIPTION | この関数は、既存のオーバーフローファイル（`.dtf`）の中で、ユーザ に指定されたスペースを作成します。 `mrbuktxtcrt`の使用は入力された、データセグメントを保持するために ディスク上のスペースを準備するただ一つの方法です。 `mrbuktxtcrt`は、システムメモリをアロケートするのではありません。よって システムメモリよりも大きなデータセグメントを作成しても問題ありません。 割付けられたオーバーフロー`.dtf`エキステントは、null値が埋め込まれ ます。
SYNOPSIS |
    long   mrbuktxtcrt (mrrdes* rec, mrades* mra, long size)
USAGE |
    flag = mrbuktxtcrt (rec, mra, size);
`rec` | レコード記述子。
`mra` | `BULK`または`TEXT`フィールド記述子。
`size` | ユーザが指定したスペース長、ここには`TEXT`データのファイル終端文字 は含まれません。
RETURNS | 失敗した場合、`-1`を返します。
WARNINGS | なし。

# mrbuktxtlen

DESCRIPTION | このルーチンは、`BULK`または`TEXT`データのバイト数を返し ます。
SYNOPSIS |
    long   mrbuktxtlen(mrrdes* rec, mrades* mra)
USAGE |
    flag = mrbuktxtlen (rec, mra);
`rec` | レコード記述子。
`mra` | `BULK`または`TEXT`フィールドディスクリプタ。
RETURNS | 成功した場合は、データのバイト長を返します。 失敗した場合は、-1を返します。これはフィールドが、`BULK`または `TEXT`データタイプでない場合です。
WARNINGS | フィールドがTEXT型で、Cスタイルのゼロ終端文字(\0)を保持している場合には、 返される長さには終端文字は含まれません。

# mrcldict

DESCRIPTION | データディクショナリーをクローズします。
SYNOPSIS |
    void   mrcldict (void)
USAGE |
    mrcldict (void);
RETURNS | なし。
WARNINGS | なし。

# mrclose

DESCRIPTION | テーブルをクローズします。ロックされていれば解放します。
SYNOPSIS |
    void   mrclose (addr table_desc)
USAGE |
    mrclose (table_desc);
RETURNS | なし。
WARNINGS | なし。

# mrcompare

DESCRIPTION | フィールド値をファイルフォーマットの定数と比較します。`mrcvt`関数 群から返されるファイルフォーマット定数が使用されます。
SYNOPSIS |
    int   mrcompare (addr record_desc,
                     addr attr_desc,
                     addr var_ptr)
USAGE |
    result = mrcompare (record_desc, attr_desc,
                        &var);

    result = mrcompare (record_desc, attr_desc,
                        mrcvt (attr_desc, string));
`result` | 比較の結果であるInteger値。
`record_des` | `mrmkrec`から返されるポインタ(`addr`)。
`attr_desc` | `mrngeta`または`mrigeta`から返されるポインタ(`addr`)。
`var` | ファイルフォーマットの定数を含む変数。
`string` | 外部フォーマット値のポインタ(`char*`)
RETURNS | フィールド値が定数より小さい場合-1、等しい場合0、大きい場合1を返します。
WARNINGS | なし。

# mrcontrol

DESCRIPTION | 可変長データの検索のために、上限と下限を設定するのに使用します。
SYNOPSIS |
    void   mrcontrol (addr attr_desc,
                      int lower_bound,
                      int upper_bound)
USAGE |
    mrcontrol (attr_desc, lower_bound,
               upper_bound)
`attr_desc` | `mrngeta`または`mirgeta`が返すポインタ(`addr`)。
`lower_bound` | プログラムバッファに読込む先頭バイト(`integer`)。
`upper_bound` | プログラムバッファに読込む最終バイト(`integer`)。
RETURNS | なし。
WARNINGS | なし。

# mrcopyi

DESCRIPTION | フィールド値の内部フォーマット値を変数にコピーします。マシンに依存した コードを生成するので、特定のアプリケーション内で使用してください。
SYNOPSIS |
    msbool   mrcopyi (addr record_desc,
                      addr attr_desc,
                      addr var_ptr)
USAGE |
    flag = mrcopyi (record_desc, attr_desc, &var);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されるポインタ(`addr`)。
`attr_desc` | `mrngeta`または`mrigeta`によって返されるポインタ(`addr`)。
`var` | フィールド値の内部フォーマットを保存するのに適したタイプの変数。
RETURNS | 値が`NULL`なら真(1)、その他は偽(0)。
WARNINGS | この関数の使用は、移植性に乏しいコードを生成します。変数はフィールド値を 保存するのに適した型および長さが必要です。マシン上で各Empressデータタイプ が、どのように保存されるか知っておく必要があります。

# mrcopyr

DESCRIPTION | レコードのフィールド値を、他のレコードにコピーします。この関数は通常 レコードの更新で使用されます。
SYNOPSIS |
    void   mrcopyr (addr new_rec_desc,
                    addr old_rec_desc)
USAGE |
    mrcopyr (new_rec_desc, old_rec_desc);
`new_rec_desc` | `mrmkrec`によって返されるポインタ(`addr`)。これは `old_rec_desc`とは、異なるレコード記述子でなくてはなりません。 同一テーブルから作成されたものであれば、他のどのレコード記述子でも構いません。
`old_rec_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | なし。
WARNINGS | どちらのレコード記述子も、同一テーブルから取得したものでなくてはいけ ません。

# mrcopyv

DESCRIPTION | 外部フォーマットのフィールド値を、割付けられたスペースに割当てます。
SYNOPSIS |
    msbool   mrcopyv (addr record_desc,
                      addr attr_desc,
                      char* space)
USAGE |
    flag = mrcopyv (record_desc, attr_desc,
                    space);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ(`addr` 。
`space` | `mrspv`によって返される、外部フォーマットのフィールド値を保存するために、割当てられたスペースへのポインタ(`char*`)。
RETURNS | フィールド値がnullでない場合は真(1)、nullの場合は偽(0)を返します。
WARNINGS | `TEXT`または`BULK`データタイプのフィールドに対する検索には 使用しないでください。 引数のポインタが、スペースの割付けが行なわれていない場合、`mrcopyv ()` は呼出しプログラムを終了させます。

# mrcvt

DESCRIPTION | 外部フォーマットのフィールド値を、ファイルフォーマット（公共バッファで） に変換します。
SYNOPSIS |
    addr   mrcvt (addr attr_desc, char* string)
USAGE |
    value = mrcvt (attr_desc, string);
`value` | ファイルフォーマットのフィールド値へのポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`string` | 外部フォーマットのフィールド値へのポインタ(`char*`)。
RETURNS | 変換が成功した場合、ファイルフォーマットのフィールド値へのポインタ (`addr`)を返します。それ以外はゼロポインタを返します。
WARNINGS | 他のmrルーチンの関数を呼び出した場合、変換された値を破壊して しまうのでファイルフォーマットを使用する直前に`mrcvt`を呼び出してくだ さい。

# mrcvti

DESCRIPTION | 内部フォーマットのフィールド値を、ファイルフォーマット(準私用バッファ) に変換します。
SYNOPSIS |
    addr   mrcvti (addr attr_desc, addr var_ptr)
USAGE |
    value = mrcvti (attr_desc, var_ptr);
`value` | ファイルフォーマットのフィールド値へのポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`string` | 外部フォーマットのフィールド値へのポインタ(`char*`)。
RETURNS | 変換が成功した場合、ファイルフォーマットのフィールド値へのポインタ (`addr`)を返します。それ以外はゼロポインタを返します。
WARNINGS | `mrcvti`は、`mrcvtv`とバッファを共有するので、どちらかの 関数が呼び出されると、変換された値が破壊されます。

# mrcvti2

DESCRIPTION | 内部フォーマットのフィールド値を、ファイルフォーマット(準私用バッファ) に変換します。
SYNOPSIS |
    addr   mrcvti2 (addr attr_desc, addr var_ptr)
USAGE |
    value = mrcvti2 (attr_desc, var_ptr);
`value` | ファイルフォーマットのフィールド値へのポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`var_ptr` | 内部フォーマットのフィールド値へのポインタ(`char*`)。
RETURNS | 変換が成功した場合、ファイルフォーマットのフィールド値へのポインタ (`addr`)を返します。それ以外はゼロポインタを返します。
WARNINGS | `mrcvti2`は、`mrcvtv2`とバッファを共有するので、どちらかの 関数が呼び出されると、変換された値が破壊されます。

# mrcvtin

DESCRIPTION | 内部フォーマットのフィールド値を、ファイルフォーマット(公共バッファ) に変換します。
SYNOPSIS |
    addr   mrcvtin (addr attr_desc, addr var_ptr)
USAGE |
    value = mrcvtin (attr_desc, var_ptr);
`value` | ファイルフォーマットのフィールド値へのポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`var_ptr` | 内部フォーマットのフィールド値へのポインタ(`char*`)。
RETURNS | 変換が成功した場合、ファイルフォーマットのフィールド値へのポインタ (`addr`)を返します。それ以外はゼロポインタを返します。
WARNINGS | 他のmrルーチンの関数を呼び出した場合、変換された値を破壊して しまうのでファイルフォーマットを使用する直前に`mrcvtin`を呼び出してくだ さい。

# mrcvtv

DESCRIPTION | 外部フォーマットのフィールド値を、ファイルフォーマットに変換します。
SYNOPSIS |
    addr   mrcvtv (addr attr_desc, char* string)
USAGE |
    value = mrcvtv (attr_desc, string);
`value` | ファイルフォーマットのフィールド値へのポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`string` | 外部フォーマットのフィールド値へのポインタ(`char*`)。
RETURNS | 変換が成功した場合、ファイルフォーマットのフィールド値へのポインタ (`addr`)を返します。それ以外はゼロポインタを返します。
WARNINGS | `mrcvtv`は、`mrcvti`とバッファを共有するので、どちらかの 関数が呼び出されると、変換された値が破壊されます。

# mrcvtv2

DESCRIPTION | 外部フォーマットのフィールド値を、ファイルフォーマットに変換します。
SYNOPSIS |
    addr   mrcvtv2 (addr attr_desc, char* string)
USAGE |
    value = mrcvtv2 (attr_desc, string);
`value` | ファイルフォーマットのフィールド値へのポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`string` | 外部フォーマットのフィールド値へのポインタ(`char*`)。
RETURNS | 変換が成功した場合、ファイルフォーマットのフィールド値へのポインタ (`addr`)を返します。それ以外はゼロポインタを返します。
WARNINGS | `mrcvtv2`は、`mrcvti2`とバッファを共有するので、どちらかの 関数が呼び出されると、変換された値が破壊されます。

# mrdel

DESCRIPTION | テーブルからレコードを削除します。失敗した場合呼出しプログラムを終了 します。
SYNOPSIS |
    void   mrdel (addr record_desc)
USAGE |
    mrdel (record_desc);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | なし。
WARNINGS | レコードは、`mrgetbegin`を呼出しで指定され、`mrget`が 呼出され検索されていなくてはなりません。 `mrdelend`は、一回以上の`mrdel`が呼出された後に、クリーンアップ のために呼出さなくてはなりません。 テーブルがdeferredモードでオープンされ、updateモードでロックされている 場合、この関数は失敗します。

# mrdelend

DESCRIPTION | テーブルからのレコード削除後にクリーンアップ処理を実行します。
SYNOPSIS |
    void   mrdelend (addr record_desc)
USAGE |
    mrdelend (record_desc);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | なし。
WARNINGS | なし。

# mreabort

DESCRIPTION | 表現の構築を終了します。用心して終了してください。誤った条件は表現を 構築する間に検知されます。(ファンクション／オペレータまたはアーギュメント／ オペランドの表現への追加関数の成功か失敗によって決定されます。） この関数の使用は、`mreend`の使用を排除します。
SYNOPSIS |
    void   mreabort (void)
USAGE |
    mreabort ();
RETURNS | なし。
WARNINGS | なし。

# mrebegin

DESCRIPTION | 表現の構築を始めます。これは内部データ構造を初期化します。
SYNOPSIS |
    void   mrebegin (void)
USAGE |
    mrebegin ();
RETURNS | なし。
WARNINGS | 表現を構築する場合、最初に呼び出さなくてはなりません。

# mrecons

DESCRIPTION | 表現にタイプ`type_desc`のアーギュメント/オペランドを加えます。 一定のものは外部フォーマット(文字列)にあることに注意してください。 日付や10進のようなデータタイプを含む、他のデータタイプも表現できます。
SYNOPSIS |
    msbool   mrecons (char* string,
                      addr type_desc)
USAGE |
    flag = mrecons (string, type_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`string` | 外部フォーマット内の定数へのポインタ(`char*`)です。(例：文字列)
`type_desc` | データタイプ記述子へのポインタ(`addr`)です。これは`mrgdtpar` 関数で取得するか、Chapter 3 の"Expressions"で解説している、汎用データタイプを 使用することができます。
RETURNS | 追加に成功した場合Trueを、それ以外はfalseを返します。
WARNINGS | なし。

# mrecvarg

DESCRIPTION | 表現にデータタイプ変換オペレーターを追加します。
SYNOPSIS |
    msbool   mrecvarg (addr type_desc)
USAGE |
    flag = mrecvarg (type_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`type_desc` | 表現値を変更したデータタイプへの、データタイプ記述子へのポインタ (`addr`)。`mrgdtpar`関数が返すか、Chapter 3 "Expressions"で 解説されている汎用データタイプ記述子のいずれかです。
RETURNS | 変換が可能な場合Trueを、その他はfalseを返します。
WARNINGS | なし。

# mreend

DESCRIPTION | 表現の構築を終了し。記述子を返します。表現記述子が直接使用された場合 (`mrerun`の呼出しで)、必要がなくなったら、`mrefree`を呼出して 記述子を解放しなくてはなりません。 表現が検索条件の中で使用される場合、記述子はEmpressによって自動的に 解放されます。
SYNOPSIS |
    addr   mreend (void)
USAGE |
    expr_desc = mreend ();
`expr_desc` | 表現への識別子(`addr`)。
RETURNS | 表現識別子へのポインタ(`addr`)を返します。
WARNINGS | なし。

# mrefree

DESCRIPTION | 表現記述子を解放します。表現が必要なくなった場合には、呼出す必要があり ます。
SYNOPSIS |
    void   mrefree (addr expr_desc)
USAGE |
    mrefree (expr_desc);
`expr_desc` | 表現記述子へのポインタ(`addr`)。
RETURNS | なし。
WARNINGS | なし。

# mrefunc

DESCRIPTION | ファンクションまたはオペレータを追加します。(例：Empressは、 ファンクション／オペレータを提供します。またユーザはEmpress SQLに ファンクション／オペレータを定義します。) ファンクション名、ファンクションの引数の数、引数のタイプは利用可能な引数と 照合されます。もし不当な場合には、表現の中には挿入されません。呼出しに失敗した 場合は、表現スタックに影響しません。
SYNOPSIS |
    msbool   mrefunc (char* func, int nargs)
USAGE |
    flag = mrefunc (func, nargs);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`func` | ファンクション名へのポインタ(`char*`)。
`nargs` | ファンクションの引数の数。
RETURNS | ファンクションの追加に成功した場合Trueを返し、それ以外はfalseを返します。
WARNINGS | なし。

# mreicvar

DESCRIPTION | 最も最近の変数に制御変数を関連させてください。`mreivar` が呼ばれた直後に、それは通常呼ばれます。 変数のパラメータモードがIN/INOUTである場合、制御変数は入力値を示すために使用 されます。変数のパラメータモードがOUT/INOUTである場合、制御変数は出力を示す ために使用されます。 制御変数のデータタイプは、Cデータタイプの`long`です。変数を制御する ポインタはファンクションに渡されます。 制御変数の有効値を示します。
`MRECVAR_VALUE` | 対応するオペランドが値であることを示します。
`MRECVAR_NULL` | 対応するオペランドがnullであることを示します。
`MRECVAR_ERROR` | エラーが対応するオペランドで生じたことを示します。
SYNOPSIS |
    msbool   mreicvar (long* icvar)
USAGE |
    flag = mreicvar (icvar);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`icvar` | 制御変数へのポインタ。制御変数のタイプは、Cデータタイプの `long` です。

RETURNS

成功したらTrue、その他はfalseを返します。

WARNINGS

なし。

# mreivar

DESCRIPTION | 表現へ間接ポインタを使用して、アーギュメント／オペランド変数を追加し ます。表現が評価された場合、変数のカレントデータが表現で使用されます。 C変数のタイプは、データタイプ記述子にわたすのに使われます。Chapter 2 の"Data Type Correspondences"を参照してください。
SYNOPSIS |
    void   mreivar (addr* ivar, addr type_desc)
USAGE |
    mreivar (ivar, type_desc);
`ivar` | 変数への間接ポインタ(`addr`)。例：`ivar`値をポイント しているポインタです。変数のタイプは、Cでサポートされたタイプに制限されます。
`type_desc` | 変数のデータタイプのデータタイプ記述子へのポインタ(`addr`)。 これは、`mrgdtpar`関数によって返されるポインタ、またはChapter 3 "Expressions"で解説されている汎用データタイプにリストされているものの一つです。 section of Chapter 3.
RETURNS | なし。
WARNINGS | なし。

# mrenull

DESCRIPTION | スタックに置かれた、アーギュメント／オペランドが`NULL`かチェック するファンクションを追加します。
SYNOPSIS |
    msbool   mrenull (char* func)
USAGE |
    flag = mrenull (func);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`func` | ファンクションへのポインタ(`char*`)。ここで使用可能なファンションは "`=`"または"`!`"です。
RETURNS | 追加に成功したらTrueを返し、それ以外はfalseを返します。
WARNINGS | なし。

# mrerecattr

DESCRIPTION | 表現にフィールドのアーギュメント／オペランドを追加します。 フィールドの値は表現が評価される時に指定されたレコードから得られます。
SYNOPSIS |
    void   mrerecattr (addr record_desc,
                       addr attr_desc)
USAGE |
    mrerecattr (record_desc, attr_desc);
`record_desc` | フィールド値が得られた`mrmkrec()`によって返されたレコード記述子 のポインタ(`addr`)。
`attr_desc` | `mrngeta ()` または`mrigeta ()`関数によって返される フィールド記述子のポインタ(`addr`)。
RETURNS | なし。
WARNINGS | なし。

# mrerrmsg

DESCRIPTION | 最終のエラー状態を示す文字列を返します。
SYNOPSIS |
    char*   mrerrmsg (void)
USAGE |
    string = mrerrmsg ();
`string` | メッセージテキストへのポインタ(`char*`)。
RETURNS | 最終のエラー状態を示すメッセージテキストへのポインタ(`char*`)。
WARNINGS | エラー発生直後に`mrerrmsg`が呼出される必要があります。 他のmrの呼出しによってメッセージテキストが破壊される恐れがあります。 この関数はスレッドセーフではありません。スレッドの内部で使用しないでください。

# mrerun

DESCRIPTION | 表現式を実行し結果へのポインタを返します。結果の型は表現式の型と同一 です。この関数の呼出しの間に更新される参照変数またはフィールド値を持ちながら、 複数回呼出されることがあります。表現式が制限の一部である場合は、使用しては いけません。結果がC変数内に保存される場合は、変数は適切な型であることが 必要となります。Chapter 2 の"Data Type Correspondences"を参照してください。
SYNOPSIS |
    addr   mrerun (addr expr_desc)
USAGE |
    result = mrerun (expr_desc);
`result` | 表現式の結果へのポインタ(`addr`)。
`expr_desc` | 表現記述子へのポインタ(`addr`)。
RETURNS | 成功した場合は、結果へのポインタ(`addr`)を返し、それ以外は `NIL`を返します。
WARNINGS | なし。

# mrfree

DESCRIPTION | `mrspv`、`mrmalloc`、`mrrealloc`によって割当て られたスペースを解放します。
SYNOPSIS |
    void   mrfree (char* space)
USAGE |
    mrfree (space);
`space` | `mrspv`によって返されたポインタ(`char*`)。
RETURNS | なし。
WARNINGS | なし。

# mrfrrec

DESCRIPTION | レコードを保存するために使用されるスペースを解放します。
SYNOPSIS |
    void   mrfrrec (addr record_desc)
USAGE |
    mrfrrec (record_desc);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | なし。
WARNINGS | なし。

# mrganame

DESCRIPTION | フィールド記述子からフィールド名を取得します。
SYNOPSIS |
    char*   mrganame (addr attr_desc)
USAGE |
    name = mrganame (attr_desc);
`name` | フィールド名へのポインタ(`char*`)。
`attr_desc` | 指定されたフィールドへのポインタ(`addr`)。
RETURNS | 指定されたフィールドの名前へのポインタ(`char*`)を返します。
WARNINGS | なし。

# mrgdtpar

DESCRIPTION | フィールド記述子から、フィールドのデータタイプ記述子を取得します。
SYNOPSIS |
    addr   mrgdtpar (addr attr_desc)
USAGE |
    type_desc = mrgdtpar (attr_desc);
`type_desc` | データタイプ記述子へのポインタ(`addr`)。
`attr_desc` | フィールド記述子へのポインタ(`addr`)。
RETURNS | データタイプ記述子へのポインタ(`addr`)を返します。
WARNINGS | なし。

# mrget

DESCRIPTION | テーブルからレコードを検索します。
SYNOPSIS |
    msbool   mrget (addr retrieval_desc)
USAGE |
    flag = mrget (retrieval_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`retrieval_desc` | `mrgetbegin`から返されるポインタ(`addr`)。
RETURNS | 成功した場合true(1)、失敗した場合にはfalse (0)を返します。 例：全ての レコードが検索された場合。失敗した場合には、呼出しプログラムを終了します。 レコードがロックされている場合も呼出しプログラムは失敗します。
WARNINGS | 一回以上の`mrget`が呼出された後は、`mrgetend`を呼出して クリーンアップしてください。

# mrgetbegin

DESCRIPTION | 検索条件をレコードと関連付けます。失敗した場合は呼出しプログラムを終了 します。
SYNOPSIS |
    addr   mrgetbegin (addr qual_desc, addr record_desc_1,
                       [ ... addr record_desc_n,] (addr)0)
USAGE |
    retrieval_desc = mrgetbegin (qual_desc, record_desc_1,
                                 record_desc_2, ...., ADDRNIL);
`retrieval_desc` | `mrget`に渡される検索記述子へのポインタ(`addr`)。
`qual_desc` | `mrq`関数から返される検索条件記述子へのポインタ(`addr`)。検索条件が与えられなかった場合、`ADDRNIL`に置き換えられます。
`record_desc_1` | `mrmkrec`によって返されたポインタ(`addr`)。
`record_desc_2` | `mrmkrec`によって返されたポインタ(`addr`)。
`ADDRNIL` | `mscc.h`ファイルで定義されている`(addr) 0`。
RETURNS | `mrget`へ渡される検索記述子へのポインタ(`addr`)が 返されます。
WARNINGS | 複数のレコードを使用することは、直積またはジョインを意味します。 (`mrget`を参照) よってレコード記述子は、異なったテーブル記述子から作成されます。 `mrq`関数の全てのフィールド記述子は、検索条件記述子 を生成するのに使用されます。 `mrgetbegin`に受け渡された検索条件記述子は、破壊され再使用できません。

# mrgetend

DESCRIPTION | テーブルからのレコード検索後のクリーンアップを行ないます。
SYNOPSIS |
    void   mrgetend (addr retrieval_desc)
USAGE |
    mrgetend (retrieval_desc);
`retrieval_desc` | `mrgetbegin`または`mrsrtbegin`から返されるポインタ(`addr`)。
RETURNS | なし。
WARNINGS | なし。

# mrgeti

DESCRIPTION | 内部フォーマットのフィールド値を持つ、バッファへのポインタを取得します。
SYNOPSIS |
    addr   mrgeti (addr record_desc,
                   addr attr_desc)
USAGE |
    result = mrgeti (record_desc, attr_desc);
`result` | 内部フォーマットのフィールド値を持つ、バッファへのポインタ(`addr`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 内部フォーマットのフィールド値を持つ、バッファへのポインタ (`addr`)を返します。値は`mrgetvs`または`mrgeti`の呼出しに より破壊されますので、直ぐに使用するかバッファにコピーしてください。

# mrgetptr

DESCRIPTION | 後に使用するためにレコードのポインタを取得します。
SYNOPSIS |
    long   mrgetptr (addr record_desc)
USAGE |
    record_ptr = mrgetptr (record_desc);
`record_ptr` | レコードのポインタ(`long`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | レコード記述子が、現在参照しているレコードへのポインタ (`long`)を返します。
WARNINGS | この関数は、テーブルと単純なVIEWにしか機能しません。

# mrgetrec

DESCRIPTION | 与えられたポインタが指しているレコードを取得します。
SYNOPSIS |
    int   mrgetrec (addr record_desc,
                    long record_ptr)
USAGE |
    flag = mrgetrec (record_desc, record_ptr);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`record_ptr` | レコードへのポインタ(`long`)。
RETURNS | 成功なら真(1)を返し、失敗なら偽(0)を返します。またレコードがロックされて いる場合には、(-1)を返します。
WARNINGS | なし。

# mrgetvi

DESCRIPTION | フィールドのinteger値を検索します。
SYNOPSIS |
    int   mrgetvi (addr record_desc,
                   addr attr_desc)
USAGE |
    result = mrgetvi (record_desc, attr_desc);
`result` | integerのフィールド値。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ(`addr` 。
RETURNS | integerのフィールド値を返します。
WARNINGS | フィールド値をintegerに変換できない場合には、関数はエラーとなり呼出し プログラムを終了します。

# mrgetvs

DESCRIPTION | 外部フォーマットのフィールド値を含む、バッファへのポインタを取得します。
SYNOPSIS |
    char*   mrgetvs (addr record_desc,
                     addr attr_desc)
USAGE |
    result = mrgetvs (record_desc, attr_desc);
`result` | 外部フォーマットのフィールド値を含む、内部バッファへのポインタ (`char*`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 外部フォーマットのフィールド値を含む、内部バッファへのポインタ (`char*`)を返します。
WARNINGS | 値は、`mrgetvs`または`mrgeti`の呼出しにより破壊されて しまうので、直ぐに使用するか、バッファにコピーしてください。

# mrgfunc

DESCRIPTION | フィールドへの集計関数の結果を返します。
SYNOPSIS |
    char*   mrgfunc (char* function,
                     addr retrieval_desc,
                     addr record_desc,
                     addr attr_desc)
USAGE |
    value = mrgfunc (function, retrieval_desc,
                     record_desc,
                     attr_desc);
`value` | 関数の値へのポインタ(`char*`)。
`function` | `COUNT`、`SUM`、`AVG`、`MIN`、`MAX` のうちのいずれか一つの文字列(`char*`)。
`retrieval_desc` | `mrgetbegin`関数群から返されるポインタ(`addr`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 関数の値へのポインタ(`char*`)を返します。レコードが存在しない場合 には、空のレコードが返されます。
WARNINGS | `mrgfunc`を実行した後には、`mrgetend`を呼出して クリーンアップする必要があります。

# mrigeta

DESCRIPTION | フィールド番号`i`に対応する、フィールド記述子を取得します。
SYNOPSIS |
    addr   mrigeta (addr table_desc,
                    int  attr_number)
USAGE |
    attr_desc = mrigeta (table_desc,
                         attr_number);
`attr_desc` | 指定されたフィールドへのポインタ(`addr`)。
`table_desc` | `mropen`によって返される、オープンされたテーブルへのポインタ (`addr`)。
`attr_number` | 指定フィールドの番号。テーブル中の最初のフィールドが1、２番目が2、あとは同様 に番号が付けられます。フィールドの順番は、クエリー言語の`DISPLAY TABLE` コマンドで参照できます。
RETURNS | 成功した場合には、フィールド記述子へのポインタ(`addr`)を返し、 `attr_number`が不正な場合には、ゼロポインタを返します。
WARNINGS | なし。

# mrlkrec

DESCRIPTION | 検索レコードにレコードレベルのロックを行います。
SYNOPSIS |
    msbool   mrlkrec (addr record_desc)
USAGE |
    flag = mrlkrec (record_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | 成功した場合には、真(1)を返し、ロックできない場合には、偽(0)を返します。
WARNINGS | この関数は、レコードレベルのロックがデータディクショナリーに設定されて いない場合には、実行されません。この場合関数は真(1)を返します。

# mrlktab

DESCRIPTION | アプリケーション実行中に、他からのアクセスを制御するためにテーブルを ロックします。
SYNOPSIS |
    msbool   mrlktab (addr table_desc)
USAGE |
    flag = mrlktab (table_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`table_desc` | `mropen`によって返された、オープンされたテーブルへのポインタ (`addr`)。
RETURNS | 成功した場合には真(1)を返し、ロックできない場合には偽(0)を返します。
WARNINGS | テーブルのロックレベルが`NULL`の場合、`mrlktab`は機能しま せん。この場合関数は`真(1)`を返します。

# mrmalloc

DESCRIPTION | Empress RDBMSで使用される、スペースを割付けます。
SYNOPSIS |
    void*   mrmalloc (int size)
USAGE |
    space = mrmalloc (size);
`space` | 割付けられたスペースへのポインタ(`void*`)。
`size` | 割付けられたスペースのサイズ(`int`)。
RETURNS | 割付けられたスペースへのポインタ(`void*`)を返します。
WARNINGS | `mrfree`で解放するまで、スペースは割付けられたままです。

# mrmkrec

DESCRIPTION | レコードを保存するために、スペースを割付けます。
SYNOPSIS |
    addr   mrmkrec (addr table_desc)
USAGE |
    record_desc = mrmkrec (table_desc);
`record_desc` | 指定テーブルのレコードを保存するための、スペースへのポインタ(`addr`) 。
`table_desc` | `mropen`によって返された、オープンされたテーブルへのポインタ (`addr`)。
RETURNS | レコード記述子へのポインタ(`addr`)。
WARNINGS | `レコード記述子`のために割当てられたスペースは、 `mrfrrec`で解放しない限り、割当てられたままとなります。

# mrmptvi

DESCRIPTION | レコードの指定フィールドに、C integer値を割当てます。失敗した場合、呼出しプログラムを終了します。
SYNOPSIS |
    void   mrmptvi (addr record_desc,
                    addr attr_desc,
                    int value)
USAGE |
    mrmptvi (record_desc, attr_desc,
             integer);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`integer` | C integer値または、integer変数。
RETURNS | なし。`mrmptvi`が失敗した場合、呼出しプログラムは終了します。
WARNINGS | なし。

# mrmptvs

DESCRIPTION | レコード内の指定フィールドに値を割当てます。失敗時には呼出しプログラムを 終了します。
SYNOPSIS |
    void   mrmptvs (addr record_desc,
                    addr attr_desc,
                    char* value)
USAGE |
    mrmptvs (record_desc, attr_desc, value);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`value` | フィールドに割当てられた、外部フォーマットへのポインタ`(char*)`。
RETURNS | なし。`mrmptvs`が失敗した場合、呼出しプログラムは終了します。
WARNINGS | なし。

# mrmutexlock

DESCRIPTION | コードを排他制御(mutex)するための開始位置を指定します。`mrmutexlock()` から`mrmutexunlock`の間は、スレッドセーフとなります。
SYNOPSIS |
    void   mrmutexlock (void)
USAGE |
    mrmutexlock ()
RETURNS | なし。
WARNINGS | なし。

# mrmutexunlock

DESCRIPTION | コードを排他制御(mutex)するための終了位置を指定します。`mrmutexlock()` から`mrmutexunlock`の間は、スレッドセーフとなります。
SYNOPSIS |
    void   mrmutexunlock (void)
USAGE |
    mrmutexunlock ()
RETURNS | なし。
WARNINGS | なし。

# mrngeta

DESCRIPTION | フィールド名から、フィールド記述子を取得します。
SYNOPSIS |
    addr   mrngeta (addr table_desc,
                    char* attr_name)
USAGE |
    attr_desc = mrngeta (table_desc, attr_name);
`attr_desc` | 指定されたフィールドへのポインタ(`addr`)。
`table_desc` | `mropen`によって返された、オープンされたテーブルへのポインタ(`addr`)。
`attr_name` | 指定されたフィールド名へのポインタ(`addr`)。
RETURNS | 成功した場合、フィールド記述子へのポインタ(`addr`)を返し、 失敗した場合(名前が不当な時)には、ゼロポインタを返します。
WARNINGS | なし。

# mrnullr

DESCRIPTION | レコード全体が`NULL`であるかチェックします。
SYNOPSIS |
    msbool   mrnullr (addr record_desc)
USAGE |
    flag = mrnullr (record_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | レコード全体が`NULL`の場合には真(1)を返し、そうでない場合は偽(0) を返します。
WARNINGS | なし。

# mrnullv

DESCRIPTION | レコード内のフィールド値が、`NULL`であるかチェックします。
SYNOPSIS |
    msbool   mrnullv (addr record_desc, addr attr_desc)
USAGE |
    flag = mrnullv (record_desc, attr_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | フィールド値が`NULL`の場合には真(1)を返し、そうでない場合は偽(0) を返します。
WARNINGS | なし。

# mropdict

DESCRIPTION | mrルーチンによる、内部アクセスのためにデータディクショナリーを オープンします。失敗した場合には、呼出しプログラムを終了します。
SYNOPSIS |
    void   mropdict (char* database_name,
                     char mode)
USAGE |
    mropdict   (database_name, mode);
`database_name` | データベースディレクトリ名へのポインタ`(char*)`。
`mode` | '`r`'または'`u`'は、readまたはupdateモードの オープンを意味します。これはシングルクォートで囲む必要があります。
RETURNS | なし。
WARNINGS | 一般的に`mropdict`を呼出す場合、新しいファイルが生成されると、 データベース内のファイルを破壊する危険があるので、カレントディレクトリで 実行してはいけません。（データベースディレクトリ内でアプリケーションを実行 しないこと）`read`モードが指定されても、データディクショナリーテーブル に読込み許可を持っていない場合、または`update`モードが指定されていても、 同じく更新許可を持っていない場合には、`mropdict`は失敗し、呼出し プログラムを終了します。

# mropen

DESCRIPTION | mrルーチンで使用するためにテーブルをオープンします。失敗した場合 には呼出しプログラムを終了します。 テーブルには、データディクショナリーに設定されているレベルでロックが設定され ます。テーブルレベルのロックが設定されていると、この関数によってテーブルは ロックされます。
SYNOPSIS |
    addr   mropen (char* database_name,
                   char* table_name,
                   char mode)
USAGE |
    table_desc = mropen (database_name,
                         table_name, mode);
`table_desc` | テーブル記述子へのポインタ(`addr`)。
`database_name` | データベースディレクトリー名へのポインタ`(char*)`。
`table_name` | テーブル名へのポインタ`(char*)`。
`mode` | '`r`'、'`u`'、'`d`'、'`n`'、'`N`'は、 それぞれread、update、deferred、dirty read、 deferred dirty readモードでのオープンを意味します。これらは、シングル クォートで囲む必要があります。 dirty readモードは、ロックレベルを回避して検索します。 (Empress: Database Administrator's Guide を参照してください。) deferredモードは、update用にテーブルをオープンしますが、検索時にはread ロックを行います。このreadロックは`mrdel`、`mrput`、 `mrtdel`、`mrtput`が実行された場合にupdateロックに変更されます。
RETURNS | 成功した場合、テーブル記述子へのポインタ(`addr`)を返し ます。失敗した場合には、何も返さずに呼出しプログラムを終了します。
WARNINGS | 一般的に`mropen`を呼出す場合、新しいファイルが生成されると、 データベース内のファイルを破壊する危険があるので、カレントディレクトリで 実行してはいけません。（データベースディレクトリ内でアプリケーションを実行 しないこと）`read`モードが指定されても、データディクショナリーテーブル に読込み許可を持っていない場合、または`update`モードが指定されていても、 同じく更新許可を持っていない場合には、`mropen`は失敗し、呼出し プログラムを終了します。

# mrprev

DESCRIPTION | テーブルから、前のレコードを検索します。
SYNOPSIS |
    msbool   mrprev (addr retrieval_desc)
USAGE |
    flag = mrprev (retrieval_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`retrieval_desc` | `mrgetbegin`によって返されるポインタ(`addr`)。
RETURNS | 成功した場合は真(1)を返し、失敗した場合には偽(0)を返します。それは 全レコードが検索済みの場合です。 レコードがロックされている場合には、呼出しは失敗し呼出しプログラムは終了します。
WARNINGS | `mrprev`が呼出されて後には、クリーンアップのために`mrgetend`を呼出す必要があります。

# mrprterr

DESCRIPTION | エラーに応じてエラーメッセージを出力します。呼出しプログラムは終了 します。
SYNOPSIS |
    void   mrprterr (void)
USAGE |
    mrprterr ();
RETURNS | なし。
WARNINGS | この関数はスレッドセーフではありません。スレッドの内部で使用しないでください。

# mrput

DESCRIPTION | レコードを更新します。
SYNOPSIS |
    void   mrput   (addr new_rec_desc,
                    addr old_rec_desc)
USAGE |
    mrput (new_rec_desc, old_rec_desc);
`new_rec_desc` | `mrmkrec`によって返されたポインタ(`addr`)。このレコードへの ポインタは、更新されたフィールド値を持っています。
`old_rec_desc` | `mrmkrec`によって返されたポインタ(`addr`)。このレコードへの ポインタは、検索されたオリジナルのフィールド値を持っています。
RETURNS | なし。
WARNINGS | `old_rec_desc`は、`mrgetbegin`と`mrget`に よって、検索された更新前のレコードを指していなくてはなりません。 そうでないと、`mrput`は失敗します。 テーブルがdeferredモードでオープンされ、updateロックが設定できない場合 この関数は失敗します。

# mrputi

DESCRIPTION | 内部フォーマットの値をレコードのフィールドに割当てます。
SYNOPSIS |
    msbool   mrputi (addr record_desc,
                     addr attr_desc,
                     addr var_ptr)
USAGE |
    flag = mrputi (record_desc, attr_desc,
                   var_ptr);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`var_ptr` | フィールドに割当てられる、内部フォーマットの値を含む変数。
RETURNS | 成功した場合は真(1)を返し、フィールドに適した値に変換できなかった場合には 偽(0)を返します。
WARNINGS | 関数が偽(0)を返した場合、レコード記述子に指されたスペースの フィールド値が変更されないことを保証できません。この関数の使用は移植性の悪い プログラムを生成することになります。

# mrputvi

DESCRIPTION | レコード内のフィールドに、C integer値を割当てます。
SYNOPSIS |
    msbool   mrputvi (addr record_desc,
                      addr attr_desc,
                      int value)
USAGE |
    flag = mrputvi (record_desc, attr_desc,
                    integer);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`integer` | C integer値またはinteger変数。
RETURNS | 成功した場合には真(1)を返し、フィールドに適した値に変換できない場合は 偽(0)を返します。
WARNINGS | 関数が偽(0)を返した場合、レコード記述子に指されたスペースの フィールド値が変更されないことを保証できません。

# mrputvs

DESCRIPTION | レコード内のフィールドに、外部フォーマットを割当てます。
SYNOPSIS |
    msbool   mrputvs (addr record_desc,
                      addr attr_desc,
                      char* value)
USAGE |
    flag = mrputvs (record_desc, attr_desc,
                    value);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`value` | 指定されたフィールドの外部フォーマットの値へのポインタ`(char*)`。
RETURNS | 成功した場合には真(1)を返して、フィールドに適した値に変換できなかった 場合は偽(0)を返します。
WARNINGS | 関数が偽(0)を返した場合、レコード記述子に指されたスペースの フィールド値が変更されないことを保証できません。

# mrqand

DESCRIPTION | `mrq`関数のいずれかによって取得した、2つの検索条件記述子 に`AND`演算を実行します。
SYNOPSIS |
    addr   mrqand (addr qual_desc_1,
                   addr qual_desc_2)
USAGE |
    qual_desc = mrqand (qual_desc_1, qual_desc_2);
`qual_desc` | `mrgetbegin`で使用する検索条件記述子へのポインタ (`addr`)。
`qual_desc_1` | `mrq`関数群によって返されるポインタ(`addr`)。
`qual_desc_2` | `mrq`関数群によって返されるポインタ(`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | `mrqand`は、引数内の検索条件記述子を破壊し、割当てた スペースを開放しますので、再使用できません。

# mrqatr

DESCRIPTION | フィールド値を他のフィールド値と比較します。
SYNOPSIS |
    addr   mrqatr (char* operator,
                   addr attr_desc_1,
                   addr attr_desc_2)
USAGE |
    qual_desc = mrqatr (operator, attr_desc_1,
                        attr_desc_2);
`operator` | 文字列`(char*)`は、次に示すいずれかの一つ。"`>`" 、"`<`"、"`>=`"、 "`<=`"、"`=`"、"`!=`" ("`~=`"と"`!=`"は同義語です。)
`qual_desc` | `mrgetbegin`で使用される、検索条件記述子へのポインタ (`addr`)。
`attr_desc_1` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`attr_desc_2` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)を返します。
WARNINGS | 比較される２つのフィールドには、互換性がなくてはなりません。ない場合には `mrqatr`は失敗します。

# mrqcon

DESCRIPTION | フィールド値をファイルフォーマットの定数と比較します。 `mrcvt`関数群の１つによって返されるファイルフォーマットへのポインタを 使用します。
SYNOPSIS |
    addr   mrqcon (char* operator,
                   addr attr_desc,
                   addr var_ptr)
USAGE |
    qual_desc = mrqcon (operator, attr_desc, &var);

    qual_desc = mrqcon (operator, attr_desc,
                        mrcvt (attr_desc, string));
`qual_desc` | `mrgetbegin`で使用される、検索条件記述子へのポインタ (`addr`)。
`operator` | 次に示すいずれかの文字列`(char*)`。"`>`"、 "`<`"、"`>=`"、 "`<=`"、"`=`"、"`!=`" ("`~=`"は"`!=`"と同義語です。)
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`var` | ファイルフォーマットの定数を含む変数。
`string` | 外部フォーマットのフィールド値へのポインタ`(char*)`。
RETURNS | `検索条件記述子`へのポインタ(`addr`)を返します。
WARNINGS | なし。

# mrqdb

DESCRIPTION | 与えられたパス名がEmpressデータベースかチェックします。
SYNOPSIS |
    msbool   mrqdb (char* directory)
USAGE |
    flag = mrqdb (directory);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`directory` | ディレクトリ名を含む文字列`(char*)`。
RETURNS | ディレクトリがEmpressデータベースであれば真(1)を返し、 そうでなければ偽(0)を返します。
WARNINGS | なし。

# mrqexpr

DESCRIPTION | 検索条件内に表現を配置します。この後`mrgetbegin`関数群で検索の 初期化を行なうために受け渡される検索条件記述子を返します。
SYNOPSIS |
    addr   mrqexpr (addr expr_desc)
USAGE |
    qual_desc = mrqexpr (expr_desc)
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`expr_desc` | 表現式の記述子へのポインタ(`addr`)。表現式の記述子は boolean式の表現。
RETURNS | 検索条件記述子へのポインタを返します。表現式の記述子が有効な表現式でない場合には、関数は失敗し呼出しプログラムを終了します。

# mrqieq

DESCRIPTION | フィールド値とC integer値を比較します。
SYNOPSIS |
    addr   mrqieq (addr attr_desc, int integer)
USAGE |
    qual_desc = mrqieq (attr_desc, integer);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`integer` | integer値またはinteger変数。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | なし。

# mrqlst

DESCRIPTION | 検索条件を先に検索されたレコードにします。
SYNOPSIS |
    addr   mrqlst (addr table_desc, long array[])
USAGE |
    qual_desc = mrqlst (table_desc, array);
`qual_desc` | `mrgetbegin`関数(検索初期化関数)で使用される、検索条件記述子 へのポインタ(`addr`)。
`table_desc` | `mropen`によって返された、オープンされたテーブルへのポインタ(`addr`)。
`array` | `mrgetptr`関数によって取得した、レコードへのポインタ(`long`) 配列。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | なし。

# mrqmch

DESCRIPTION | フィールド値をパターンと比較します。
SYNOPSIS |
    addr   mrqmch (char* operator,
                   addr attr_desc,
                   char* pattern)
USAGE |
    qual_desc = mrqmch (operator, attr_desc,
                        pattern);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`operator` | 次に示す文字列`char*`のうちに１つ。`MATCH`、`SMATCH`、 `!MATCH`、`!SMATCH` ("`~`"は"`!`"と同義語です。)
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`pattern` | パターンへのポインタ`(char*)`。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | なし。

# mrqnot

DESCRIPTION | `mrq`関数群から返される、検索条件記述子に`NOT`演算 を実行し、その意味を逆転させます。
SYNOPSIS |
    addr   mrqnot (addr qual_desc)
USAGE |
    qual_desc = mrqnot (qual_desc);
`qual_desc` | `mrq`関数群から返されるポインタ(`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | `mrqnot`は、引数の検索条件記述子を破壊し、割付けられた スペースを開放しますので、再利用はできません。

# mrqnul

DESCRIPTION | フィールド値と`NULL`を比較します。
SYNOPSIS |
    addr   mrqnul (char* operator, addr attr_desc)
USAGE |
    qual_desc = mrqnul (operator, attr_desc);
`qual_desc` | `mrgetbegin`で使用される、検索条件記述子へのポインタ (`addr`)。
`operator` | 次に示す文字列``(char*)``。"`=`"または"`!=`" ("`~=`"は"`!=`"と同義語です。)
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | なし。

# mrqor

DESCRIPTION | `mrq`関数のいずれかによって取得した、2つの検索条件記述子 に`OR`演算を実行します。
SYNOPSIS |
    addr   mrqor (addr qual_desc_1,
                  addr qual_desc_2)
USAGE |
    qual_desc = mrqor (qual_desc_1,
                       qual_desc_2);
`qual_desc` | 検索条件記述子へのポインタ(`addr`)。
`qual_desc_1` | `mrq`関数群によって返されるポインタ(`addr`)。
`qual_desc_2` | `mrq`関数群によって返されるポインタ(`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | `mrqor`は、引数内の検索条件記述子を破壊し、割当てた スペースを開放しますので、再使用できません。

# mrqrng

DESCRIPTION | フィールド値を与えられた範囲と比較します。範囲の限界は、 ファイルフォーマット値へのポインタとして指定されます。 `mrcvt`関数群によって返されるポインタが使用されます。
SYNOPSIS |
    addr   mrqrng (addr attr_desc, addr lower_limit,
                   char limit_type_1,
                   addr upper_limit,
                   char limit_type_2)
USAGE |
    qual_desc = mrqrng (attr_desc, lower_limit,
                        limit_type_1, upper_limit,
                        limit_type_2);

    qual_desc = mrqrng (attr_desc,
                        mrcvtv (attr_desc, string_1),
                        limit_type_1,
                        mrcvtv2 (attr_desc, string_2),
                        limit_type_2);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`limit_type_1` | '`i`'または'`e`'は、下限に指定した値を限界値に含むか (inclusive)、含まないか(exclusive)の指定を意味します。
`limit_type_2` | '`i`'または'`e`'は、上限に指定した値を限界値に含むか (inclusive)、含まないか(exclusive)の指定を意味します。
`string_1` | 外部フォーマットのフィールド値へのポインタ`(char*)`。
`string_2` | 外部フォーマットのフィールド値へのポインタ`(char*)`。
`lower_limit` | 範囲の下限値を表すファイルフォーマット値へのポインタ(`addr`)。
`upper_limit` | 範囲の上限値を表すファイルフォーマット値へのポインタ(`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | なし。

# mrqseq

DESCRIPTION | フィールド値が文字列と等しいかチェックします。
SYNOPSIS |
    addr   mrqseq (addr attr_desc, char* string)
USAGE |
    qual_desc = mrqseq (attr_desc, string);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`string` | 外部フォーマットのフィールド値へのポインタ`(char*)`。
RETURNS | 検索条件記述子へのポインタ(`addr`)。
WARNINGS | 文字列が正しいデータタイプのフィールド値に変換できない場合には、関数は 失敗し呼出しプログラムは終了します。

# mrrealloc

DESCRIPTION | `mrmalloc`で割付けられたスペースのサイズを変更します。
SYNOPSIS |
    void*   mrrealloc (void* space, int size)
USAGE |
    realloc_space = mrrealloc (space, size);
`realloc_space` | Empress RDBMSで使用する割付けられたスペースへのポインタ(void*)。
`space` | 以前に割付けられたスペースへのポインタ(void*)。
`size` | 割付けるスペースのサイズ(`int`)。
RETURNS | Empress RDBMSで使用する割付けられたスペースへのポインタ(void*)を 返します。
WARNINGS | `mrfree`で解放しない限り、スペースは割付けられたままです。

# mrreget

DESCRIPTION | テーブルからのレコード検索を、再度行います。
SYNOPSIS |
    int   mrreget (addr retrieval_desc)
USAGE |
    flag = mrreget (retrieval_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`retrieval_desc` | `mrgetbegin`によって返されるポインタ(`addr`)。
RETURNS | 成功した場合には(1)を返し、全てのレコードを検索済みの場合には(0)、 レコードがロックされている場合は(-1)を返します。 関数が失敗した場合`mroperr`変数に、ヘッダーファイル`mrerrno.h`に リストされている、`MRER`...コードがセットされます。これにより失敗した 原因を調べることが可能です。
WARNINGS | `mrreget`を呼出した後には、クリーンアップのために`mrgetend` を呼出す必要があります。

# mrreprev

DESCRIPTION | テーブルからの前のレコード検索を、再度行います。
SYNOPSIS |
    int   mrreprev (addr retrieval_desc)
USAGE |
    flag = mrreprev (retrieval_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`retrieval_desc` | `mrgetbegin`によって返されるポインタ(`addr`)。
RETURNS | 成功した場合には(1)を返し、全てのレコードを検索済みの場合には(0)、 レコードがロックされている場合は(-1)を返します。 関数が失敗した場合`mroperr`変数に、ヘッダーファイル`mrerrno.h`に リストされている、`MRER`...コードがセットされます。これにより失敗した 原因を調べることが可能です。
WARNINGS | `mrreprev`を呼出した後には、クリーンアップのために `mrgetend`を呼出す必要があります。

# mrsetnr

DESCRIPTION | `NULL`値をレコード内の全てのフィールドに割当てます。
SYNOPSIS |
    void   mrsetnr (addr record_desc)
USAGE |
    mrsetnr (record_desc);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | なし。
WARNINGS | なし。

# mrsetnv

DESCRIPTION | レコード内の指定されたフィールドに`NULL`値を割当てます。
SYNOPSIS |
    void   mrsetnv (addr record_desc, addr attr_desc)
USAGE |
    mrsetnv (record_desc, attr_desc);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ(`addr` 。
RETURNS | なし。
WARNINGS | なし。

# mrspv

DESCRIPTION | 外部フォーマットフィールド値を保存するために、スペースを割当てます。
SYNOPSIS |
    char*   mrspv (addr attr_desc)
USAGE |
    space = mrspv (attr_desc);
`space` | 外部フォーマットのフィールド値を、保存するために割当てられるスペースへの ポインタ`(char*)`。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 外部フォーマットのフィールド値を、保存するために割当てられるスペースへの ポインタ`(char*)`を返します。`TEXT`または`BULK` データタイプのフィールドに使用された場合は、ゼロポインタを返します。
WARNINGS | `mrfree`で解放しない限り、スペースは割付けられたままです。 この関数は、`TEXT`または`BULK`データタイプのフィールドには 使用できません。

# mrsrtbegin

DESCRIPTION | ソート出力するために、検索条件をレコードと関連付けます。失敗した場合は 呼出しプログラムを終了します。
SYNOPSIS |
    addr   mrsrtbegin (addr qual_desc, char indicator,
                       addr record_desc_1,
                       [ ... addr record_desc_n,] (addr)0,
                       addr attr_desc_1, char type,
                       [ ... addr attr_desc_n, char type,]
                       (addr)0)
USAGE |
    retrieval_desc = mrsrtbegin (qual_desc, indicator,
                        record_desc_1, record_desc_2, ... , ADDRNIL,
                        attr_desc_1, type, attr_desc_2, type, .... ,
                        ADDRNIL);
`retrieval_desc` | `mrget`に渡される、検索記述子へのポインタ(`addr`)。
`qual_desc` | `mrq`関数群によって返される、検索条件記述子へのポインタ (`addr`)。検索条件がない場合、`ADDRNIL`を指定します。
`indicator` | '`u`'または'`s`'はユニークなソートか、標準的なソートかを 意味しています。これはシングルクォートで囲む必要があります。 ユニークなソートでは、リストされたフィールドのユニークなレコードを出力します。 リストされないフィールドが重複したデータを持っている場合、出力順は不定です。
`record_desc_1` | `mrmkrec`によって返されたポインタ(`addr`)。
`record_desc_2` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc_1` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`attr_desc_2` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`type` | '`a`'または'`d`'は、ソート順を昇順(ascending)にするか 降順(descending)にするかを指定します。
`ADDRNIL` | ヘッダーファイル`mscc.h`内で、`(addr) 0`と定義されています。
RETURNS | `mrget`で使用する、検索記述子へのポインタ(`addr`)。
WARNINGS | 複数のレコードを使用することは、直積またはジョイン(`mrget`を参照) を意味します。この場合、レコード記述子はは別々のテーブル記述子 から取得する必要があります。検索条件記述子の生成に使用される`mrq` 関数内のすべての、フィールド記述子は、引数として`mrsrtbegin`に 与えられるレコード記述子と一致する、テーブル記述子に属している 必要があります。そうでない場合関数は失敗します。 `mrsrtbegin`に渡された、検索条件記述子は破壊され、再使用でき ません。

# mrsubbegin

DESCRIPTION | データセグメントへの更新処理の開始を示します。
SYNOPSIS |
    void   mrsubbegin (mrrdes* rec)
USAGE |
    mrsubbegin (rec);
`rec` | レコード記述子。
RETURNS | なし。
WARNINGS | `mrsubbegin`は、部分的な更新のためにロック処理を行います。 この関数は、挿入または更新処理の中で`mradd`または`mrput`を 呼出す前に実行することを推奨します。 適切なロック処理を維持するには、`mrsubbegin`と`mrsubend`間で レコードに対し、部分的な更新処理を行なう必要があります。

# mrsubend

DESCRIPTION | データセグメントへの更新処理の終了を示します。
SYNOPSIS |
    void   mrsubend (mrrdes* rec)
USAGE |
    mrsubend (rec);
`rec` | レコード識別子。
RETURNS | なし。
WARNINGS | なし。

# mrsubgeti

DESCRIPTION | `BULK`または`TEXT`データタイプのフィールドから、データの セグメントを取得します。
SYNOPSIS |
    long   mrsubgeti (mrrdes* rec, mrades* mra, addr* buktxtint,
                      long offset, long size)
USAGE |
    flag = mrsubgeti (rec, mra, buktxtint, offset, size);
`rec` | レコード記述子。
`mra` | `BULK`または`TEXT`データタイプのフィールド記述子。
`buktxtint` | 取得したデータセグメントを保持するメモリへのポインタのポインタ。 これは、出力パラメータです。
`offset` | `BULK`または`TEXT`データタイプのフィールドから、取得する データセグメントの開始位置。
`size` | 開始位置から取得するデータのサイズ。
RETURNS | 失敗した場合`-1`を返します。
WARNINGS | 要求したデータセグメントが、全体のデータより小さい場合には、`.dtf` ファイルのチェックサムは行なわれません。 `buktxtint`はポインタのポインタであることに注意してください。

# mrsubputi

DESCRIPTION | `BULK`または`TEXT`データタイプのフィールドへの、データ セグメントの更新処理を向上させます。フィールドのデータ部を上書きします。
SYNOPSIS |
    long   mrsubputi (mrrdes* rec, mrades* mra,
                      addr buktxtint, long offset)
USAGE |
    flag = mrsubputi (rec, mra, buktxtint, offset);
`rec` | レコード記述子。
`mra` | `BULK`または`TEXT`データタイプのフィールド記述子。
`buktxtint` | `BULK`または`TEXT`データの内部バッファへのポインタ。
`offset` | `BULK`または`TEXT`データタイプのフィールドの、更新する データセグメントの開始位置。
RETURNS | 失敗した場合には、`-1`を返します。
WARNINGS | なし。

# mrtadd

DESCRIPTION | テーブルにレコードを挿入します。挿入に成功したか失敗したか返します。 `mrtadd`は、フィールドにユニークインデックスが設定されている場合に使用 します。
SYNOPSIS |
    msbool   mrtadd (addr record_desc)
USAGE |
    flag = mrtadd (record_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | 成功した場合には(1)を返し、失敗した場合には(0)を返します。関数が失敗 した場合`mroperr`変数に、ヘッダーファイル`mrerrno.h`にリスト されている、`MRER`...コードがセットされます。これにより失敗した原因を 調べることが可能です。
WARNINGS | `mrtadd`を呼出した後は、`mraddend`を呼出してクリーンアップ する必要があります。

# mrtdel

DESCRIPTION | テーブルからレコードを削除します。失敗した場合呼出しプログラムを終了 しません。
SYNOPSIS |
    msbool   mrtdel (addr record_desc)
USAGE |
    flag = mrtdel (record_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | 成功した場合には(1)を返し、失敗した場合には(0)を返します。関数が失敗 した場合`mroperr`変数に、ヘッダーファイル`mrerrno.h`にリスト されている、`MRER`...コードがセットされます。これにより失敗した原因を 調べることが可能です。
WARNINGS | レコードは、`mrgetbegin`を呼出しで指定され、`mrget`が呼出 され検索されていなくてはなりません。 `mrdelend`は、一回以上の `mrtdel`が呼出された後に、クリーンアップのために呼出さなくてはなりま せん。

# mrtget

DESCRIPTION | テーブルからレコードを検索します。失敗した場合呼出しプログラムを終了 しません。
SYNOPSIS |
    int   mrtget (addr retrieval_desc)
USAGE |
    flag = mrtget (retrieval_desc);
`flag` | 呼出しの結果を示すインジケータ(`int`)。
`retrieval_desc` | `mrgetbegin`によって返されるポインタ(`addr`)。
RETURNS | 成功した場合は(1)、全てのレコードが検索済みの場合は(0)、レコードがロック されている場合は(-1)を返します。関数が失敗した場合`mroperr`変数に、 ヘッダーファイル`mrerrno.h`にリストされている、`MRER`...コードが セットされます。これにより失敗した原因を調べることが可能です。
WARNINGS | 一回以上の`mrtget`が呼出された後は、`mrgetend`を呼出して クリーンアップしてください。

# mrtgfunc

DESCRIPTION | フィールドへの集計関数の結果を返します。失敗した場合には、呼出し プログラムを終了しません。
SYNOPSIS |
    char*   mrtgfunc (char* function,
                      addr retrieval_desc,
                      addr record_desc,
                      addr attr_desc)
USAGE |
    value = mrtgfunc (function, retrieval_desc,
                      record_desc, attr_desc);
`value` | 関数の値へのポインタ`(char*)`。
`function` | `COUNT`、`SUM`、`AVG`、`MIN`、`MAX`の いずれか１つの文字列`(char*)`。
`retrieval_desc` | `mrgetbegin`関数群から返されるポインタ(`addr`)。
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ(`addr` )。`COUNT`関数の場合には、`CHARNIL`を指定します。
RETURNS | 関数の値へのポインタ(`char*`)を返します。アクセスするレコードが ない場合は`CHARNIL`を返します。関数が失敗した場合`mroperr`変数に、 ヘッダーファイル`mrerrno.h`にリストされている、`MRER`...コードが セットされます。これにより失敗した原因を調べることが可能です。 BR>
WARNINGS | `mrtgfunc`が呼出された後は、`mrgetend`を呼出して クリーンアップする必要があります。また、値は`mrfree`によって解放する 必要があります。

# mrtgtbegin

DESCRIPTION | 検索条件をレコードと関連付けます。失敗した場合は呼出しプログラムを終了 しません。
SYNOPSIS |
    addr   mrtgtbegin (addr qual_desc, addr record_desc_1,
                       [ ... addr record_desc_n,] (addr)0)
USAGE |
    retrieval_desc = mrtgtbegin (qual_desc, record_desc_1,
                                 record_desc_2, .... , ADDRNIL);
`retrieval_desc` | `mrget`に渡される検索記述子へのポインタ(`addr`)。
`qual_desc` | `mrq`関数から返される検索条件記述子へのポインタ(`addr`) 。検索条件が与えられなかった場合、`ADDRNIL`に置き換えられます。
`record_desc_1` | `mrmkrec`によって返されたポインタ(`addr`)。
`record_desc_2` | `mrmkrec`によって返されたポインタ(`addr`)。
`ADDRNIL` | `mscc.h`ファイルで定義されている`(addr) 0`。
RETURNS | 対象レコードが検索可能な場合、`mrget`へ渡される検索記述子 へのポインタ(`addr`)が返されます。その他の場合には`(addr)0` (`ADDRNIL`)が返されます。関数が失敗した場合`mroperr`変数に、 ヘッダーファイル`mrerrno.h`にリストされている、`MRER`...コードが セットされます。これにより失敗した原因を調べることが可能です。
WARNINGS | 複数のレコードを使用することは、直積またはジョインを意味します。 (`mrget`を参照) よってレコード記述子は、異なったテーブル記述子から作成されます。 `mrq`関数の全てのフィールド記述子は、検索条件記述子 を生成するのに使用されます。 `mrgetbegin`に受け渡された検索条件記述子は、破壊され再使用できません。

# mrtopdict

DESCRIPTION | mrルーチンによる、内部アクセスのためにデータディクショナリーを オープンします。失敗した場合には、呼出しプログラムを終了しません。
SYNOPSIS |
    msbool   mrtopdict (char* database_name,
                        char mode)
USAGE |
    flag = mrtopdict (database_name, mode);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`database_name` | データベースディレクトリ名へのポインタ`(char*)`。
`mode` | '`r`'または'`u`'は、readまたはupdateモードの オープンを意味します。これはシングルクォートで囲む必要があります。
RETURNS | 成功した場合には(1)を返し、失敗した場合には(0)を返します。関数が失敗 した場合`mroperr`変数に、ヘッダーファイル`mrerrno.h`にリスト されている、`MRER`...コードがセットされます。これにより失敗した原因を 調べることが可能です。
WARNINGS | 一般的に`mrtopdict`を呼出す場合、新しいファイルが生成されると、 データベース内のファイルを破壊する危険があるので、カレントディレクトリで 実行してはいけません。（データベースディレクトリ内でアプリケーションを実行 しないこと）`read`モードが指定されても、データディクショナリーテーブル に読込み許可を持っていない場合、または`update`モードが指定されていても、 同じく更新許可を持っていない場合には、`mrtopdict`は失敗し、 エラーを通知します。

# mrtopen

DESCRIPTION | mrルーチンで使用するためにテーブルをオープンします。失敗した場合 には呼出しプログラムを終了しません。 テーブルには、データディクショナリーに設定されているレベルでロックが設定され ます。テーブルレベルのロックが設定されていると、この関数によってテーブルは ロックされます。
SYNOPSIS |
    addr   mrtopen (char* database_name,
                    char* table_name,
                    char mode)
USAGE |
    table_desc = mrtopen (database_name,
                          table_name, mode);
`table_desc` | テーブル記述子へのポインタ(`addr`)。
`database_name` | データベースディレクトリー名へのポインタ`(char*)`。
`table_name` | テーブル名へのポインタ`(char*)`。
`mode` | '`r`'、'`u`'、'`d`'、'`n`'、'`N`'は、 それぞれread、update、deferred、dirty read、 deferred dirty readモードでのオープンを意味します。これらは、シングル クォートで囲む必要があります。 dirty readモードは、ロックレベルを回避して検索します。 (Empress: Database Administrator's Guide を参照してください。) deferredモードは、update用にテーブルをオープンしますが、検索時にはread ロックを行います。このreadロックは`mrdel`、`mrput`、 `mrtdel`、`mrtput`が実行された場合にupdateロックに変更されます。
RETURNS | 成功した場合、テーブル記述子へのポインタ(`addr`)を返し、 失敗した場合には、ゼロポインタを返します。関数が失敗した場合`mroperr` 変数に、ヘッダーファイル`mrerrno.h`にリストされている、`MRER`... コードがセットされます。これにより失敗した原因を調べることが可能です。
WARNINGS | 一般的に`mrtopen`を呼出す場合、新しいファイルが生成されると、 データベース内のファイルを破壊する危険があるので、カレントディレクトリで 実行してはいけません。（データベースディレクトリ内でアプリケーションを実行 しないこと）`read`モードが指定されても、データディクショナリーテーブル に読込み許可を持っていない場合、または`update`モードが指定されていても、 同じく更新許可を持っていない場合には、`mrtopen`は失敗し、 エラーを通知します。

# mrtprev

DESCRIPTION | テーブルから、前のレコードを検索します。失敗した場合、呼出しプログラム を終了しません。
SYNOPSIS |
    int   mrtprev (addr retrieval_desc)
USAGE |
    flag = mrtprev (retrieval_desc);
`flag` | 関数からの結果を示すインジケータ(`int`)。
`retrieval_desc` | `mrgetbegin`によって返されるポインタ(`addr`)。
RETURNS | 成功した場合は(1)、全てのレコードが検索済みの場合は(0)、レコードがロック されている場合は(-1)を返します。関数が失敗した場合`mroperr`変数に、 ヘッダーファイル`mrerrno.h`にリストされている、`MRER`...コードが セットされます。これにより失敗した原因を調べることが可能です。
WARNINGS | 一回以上の`mrtprev`が呼出された後は、`mrgetend`を呼出して クリーンアップしてください。

# mrtput

DESCRIPTION | レコードを更新します。失敗したか成功したか結果を返します。`mrtput` は、フィールドにユニークインデックスが設定されている場合に使用してください。
SYNOPSIS |
    msbool   mrtput (addr new_rec_desc,
                     addr old_rec_desc)
USAGE |
    flag = mrtput (new_rec_desc, old_rec_desc);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`new_rec_desc` | `mrmkrec`によって返されたポインタ(`addr`)。このレコードへの ポインタは、更新されたフィールド値を持っています。
`old_rec_desc` | `mrmkrec`によって返されたポインタ(`addr`)。このレコードへの ポインタは、検索されたオリジナルのフィールド値を持っています。
RETURNS | 成功した場合には(1)、失敗した場合には(0)を返します。関数が失敗した場合 `mroperr`変数に、ヘッダーファイル`mrerrno.h`にリストされている、 `MRER`...コードがセットされます。これにより失敗した原因を調べることが 可能です。
WARNINGS | `old_rec_desc`は、`mrgetbegin`と`mrget`に よって、検索された更新前のレコードを指していなくてはなりません。 そうでないと、`mrtput`は失敗します。

# mrtqatr

DESCRIPTION | フィールド値を他のフィールド値と比較します。失敗した場合には通知します。
SYNOPSIS |
    addr   mrtqatr (char* operator,
                    addr attr_desc_1,
                    addr attr_desc_2)
USAGE |
    qual_desc = mrtqatr (operator, attr_desc_1,
                         attr_desc_2);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`operator` | 文字列`(char*)`は、次に示すいずれかの一つ。"`>`" 、"`<`"、"`>=`"、 "`<=`"、"`=`"、"`!=`" ("`~=`"と"`!=`"は同義語です。)
`attr_desc_1` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`attr_desc_2` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)を返します。失敗した 場合には、`ADDRNIL`(`(addr)0`)を返します。関数が失敗した場合 `mroperr`変数に、ヘッダーファイル`mrerrno.h`にリストされている、 `MRER`...コードがセットされます。これにより失敗した原因を調べることが 可能です。
WARNINGS | 比較される２つのフィールドには、互換性がなくてはなりません。ない場合には `mrtqatr`は失敗します。

# mrtqcon

DESCRIPTION | フィールド値をファイルフォーマットの定数と比較します。失敗した場合には 通知します。`mrcvt`関数群の１つによって返されるファイルフォーマットへの ポインタを使用します。
SYNOPSIS |
    addr   mrtqcon (char* operator,
                    addr attr_desc,
                    addr var_ptr)
USAGE |
    qual_desc = mrtqcon (operator, attr_desc,
                         &var);

    qual_desc = mrtqcon (operator, attr_desc,
                         mrcvt (attr_desc, string));
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`operator` | 次に示すいずれかの文字列`(char*)`。"`>`"、 "`<`"、"`>=`"、 "`<=`"、"`=`"、"`!=`" ("`~=`"は"`!=`"と同義語です。)
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`var` | ファイルフォーマットの定数を含む変数。
`string` | 外部フォーマットのフィールド値へのポインタ`(char*)`。
RETURNS | `検索条件記述子`へのポインタ(`addr`)を返します。失敗した 場合には、`ADDRNIL` (`addr)0`を返します。関数が失敗した場合 `mroperr`変数に、ヘッダーファイル`mrerrno.h`にリストされている、 `MRER`...コードがセットされます。これにより失敗した原因を調べることが 可能です。
WARNINGS | なし。

# mrtqmch

DESCRIPTION | フィールド値をパターンと比較します。失敗した場合には通知します。
SYNOPSIS |
    addr   mrtqmch (char* operator,
                    addr attr_desc,
                    char* pattern)
USAGE |
    qual_desc = mrtqmch (operator, attr_desc,
                         pattern);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`operator` | 次に示す文字列`char*`のうちに１つ。`MATCH`、`SMATCH`、 `!MATCH`、`!SMATCH` ("`~`"は"`!`" ;と同義語です。)
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`pattern` | パターンへのポインタ`(char*)`。
RETURNS | 検索条件記述子へのポインタ(`addr`)を返します。失敗した場合 には、`ADDRNIL`(`(addr)0`)を返します。関数が失敗した場合 `mroperr`変数に、ヘッダーファイル`mrerrno.h`にリストされている、 `MRER`...コードがセットされます。これにより失敗した原因を調べることが 可能です。
WARNINGS | なし。

# mrtqnul

DESCRIPTION | フィールド値と`NULL`を比較します。失敗した場合通知します。
SYNOPSIS |
    addr   mrtqnul (char* operator, addr attr_desc)
USAGE |
    qual_desc = mrtqnul (operator, attr_desc);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`operator` | 次に示す文字列``(char*)``。"`=`"または"< TT>!=" ("`~=`"は"`!=`"と同義語です。)
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)を返します。失敗した 場合にが`ADDRNIL`(`(addr)0`)を返します。関数が失敗した場合 `mroperr`変数に、ヘッダーファイル`mrerrno.h`にリストされている、 `MRER`...コードがセットされます。これにより失敗した原因を調べることが 可能です。
WARNINGS | なし。

# mrtqrng

DESCRIPTION | フィールド値を与えられた範囲と比較します。失敗した場合には通知します。
SYNOPSIS |
    addr   mrtqrng (addr attr_desc,
                    addr lower_limit,
                    char limit_type_1,
                    addr upper_limit,
                    char limit_type_2)
USAGE |
    qual_desc = mrtqrng (attr_desc, lower_limit,
                         limit_type_1, upper_limit,
                         limit_type_2);

    qual_desc = mrtqrng (attr_desc,
                         mrcvtv (attr_desc, string_1),
                         limit_type_1,
                         mrcvtv2 (attr_desc, string_2),
                         limit_type_2);
`qual_desc` | `mrgetbegin`で使用される検索条件記述子へのポインタ (`addr`)。
`attr_desc` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`string_1` | 外部フォーマットのフィールド値へのポインタ`(char*)`。
`string_2` | 外部フォーマットのフィールド値へのポインタ`(char*)`。
`limit_type_1` | '`i`'または'`e`'は、下限に指定した値を限界値に含むか (inclusive)、含まないか(exclusive)の指定を意味します。
`limit_type_2` | '`i`'または'`e`'は、下限に指定した値を限界値に含むか (inclusive)、含まないか(exclusive)の指定を意味します。
`lower_limit` | 範囲の下限値を表すファイルフォーマット値へのポインタ(`addr`)。
`upper_limit` | 範囲の上限値を表すファイルフォーマット値へのポインタ(`addr`)。
RETURNS | 検索条件記述子へのポインタ(`addr`)を返します。失敗した 場合には、`ADDRNIL`(`(addr)0`)を返します。関数が失敗した場合 `mroperr`変数に、ヘッダーファイル`mrerrno.h`にリストされている、 `MRER`...コードがセットされます。これにより失敗した原因を調べることが 可能です。
WARNINGS | なし。

# mrtrcancel

DESCRIPTION | トランザクションをキャンセルし、データベースを前の状態に戻します。
SYNOPSIS |
    msbool   mrtrcancel (void)
USAGE |
    flag = mrtrcancel ();
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
RETURNS | 成功した場合は(1)を返し、失敗した場合は(0)を返します。
WARNINGS | なし。

# mrtrcommit

DESCRIPTION | トランザクションをコミットし、データベースへの変更を確定します。
SYNOPSIS |
    msbool   mrtrcommit (void)
USAGE |
    flag = mrtrcommit ();
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
RETURNS | 成功した場合は(1)を返し、失敗した場合は(0)を返します。
WARNINGS | トランザクションは進行している必要があります。

# mrtrrollback

DESCRIPTION | セーブポイントまでトランザクションをロールバックします。
SYNOPSIS |
    msbool   mrtrrollback (char* savepoint)
USAGE |
    flag = mrtrrollback (savepoint);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`savepoint` | セーブポイント名へのポインタ`(char*)`。この名前は英字で始まる文字列 でなくてはなりません。セーブポイント名が`CHARNIL` (" ")の場合、 `mrtrcancel`と同一となります。
RETURNS | 成功した場合は(1)を返し、失敗した場合は(0)を返します。
WARNINGS | トランザクションが進行し、セーブポイントが設定されている必要があります。 `mrtrrollback`が、`mrgetbegin`と`mrgetend`の間で 、レコードの削除または更新後に呼出されると、レコードの内容は不確定となって しまいます。

# mrtrsave

DESCRIPTION | トランザクション内にセーブポイントを設定します。
SYNOPSIS |
    msbool   mrtrsave (char* savepoint)
USAGE |
    flag = mrtrsave (savepoint);
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
`savepoint` | セーブポイント名へのポインタ`(char*)`。この名前は英字で始まる 文字列でなくてはいけません。
RETURNS | 成功した場合は(1)を返し、失敗した場合は(0)を返します。
WARNINGS | トランザクションは進行していなくてはなりません。

# mrtrstart

DESCRIPTION | トランザクションを開始します。
SYNOPSIS |
    msbool   mrtrstart (void)
USAGE |
    flag = mrtrstart ();
`flag` | 関数の成功・失敗を表すインジケータ(`msbool`)。
RETURNS | 成功した場合は(1)を返し、失敗した場合は(0)を返します。失敗する場合は トランザクションが既に開始されている時です。
WARNINGS | なし。

# mrtsrbegin

DESCRIPTION | ソート出力するために、検索条件をレコードと関連付けます。失敗した場合は 呼出しプログラムを終了しません。
SYNOPSIS |
    addr   mrtsrbegin (addr qual_desc, char indicator,
                       addr record_desc_1,
                       [ ... addr record_desc_n,] (addr)0,
                       addr attr_desc_1, char type,
                       [ ... addr attr_desc_n, char type,] (addr)0)
USAGE |
    retrieval_desc = mrtsrbegin (qual_desc, indicator, record_desc_1,
                     record_desc_2, .... , ADDRNIL, attr_desc_1, type,
                     attr_desc_2, type, .... , ADDRNIL);
`retrieval_desc` | `mrget`に渡される、検索記述子へのポインタ(`addr`)。
`qual_desc` | `mrq`関数群によって返される、検索条件記述子へのポインタ (`addr`)。検索条件がない場合、`ADDRNIL`を指定します。
`indicator` | '`u`'または'`s`'はユニークなソートか、標準的なソートかを 意味しています。これはシングルクォートで囲む必要があります。 ユニークなソートでは、リストされたフィールドのユニークなレコードを出力します。 リストされないフィールドが重複したデータを持っている場合、出力順は不定です。
`record_desc_1` | `mrmkrec`によって返されたポインタ(`addr`)。
`record_desc_2` | `mrmkrec`によって返されたポインタ(`addr`)。
`attr_desc_1` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`attr_desc_2` | `mrigeta`または`mrngeta`によって返されたポインタ (`addr`)。
`type` | '`a`'または'`d`'は、ソート順を昇順(ascending)にするか 降順(descending)にするかを指定します。
RETURNS | `mrget`で使用する、検索記述子へのポインタ(`addr`) を返します。失敗した場合には、`ADDRNIL`(`(addr)0`)を返します。 関数が失敗した場合`mroperr`変数に、ヘッダーファイル`mrerrno.h`に リストされている、`MRER`...コードがセットされます。これにより失敗した 原因を調べることが可能です。
WARNINGS | 複数のレコードを使用することは、直積またはジョイン(`mrget`を参照) を意味します。この場合、レコード記述子はは別々のテーブル記述子 から取得する必要があります。検索条件記述子の生成に使用される`mrq` 関数内のすべての、フィールド記述子は、引数として`mrtsrbegin`に 与えられるレコード記述子と一致する、テーブル記述子に属している 必要があります。そうでない場合関数はエラーを通知します。 `mrsrtbegin`に渡された、検索条件記述子は破壊され、再使用でき ません。

# mrulrec

DESCRIPTION | レコードのロックを解除します。この関数は`mrgetrec`で検索された レコードのロックを解除し、また`mrlkrec`で生成されたロックを解除します。
SYNOPSIS |
    void   mrulrec (addr record_desc)
USAGE |
    mrulrec (record_desc);
`record_desc` | `mrmkrec`によって返されたポインタ(`addr`)。
RETURNS | なし。
WARNINGS | レコードがロックされていないと、この関数は失敗します。

# mrultab

DESCRIPTION | アプリケーション実行後にテーブルのロックを解除します。
SYNOPSIS |
    void   mrultab (addr table_desc)
USAGE |
    mrultab (table_desc);
`table_desc` | `mropen`によって返された、オープンされたテーブルへのポインタ(`addr`)。
RETURNS | なし。
WARNINGS | なし。