MAGIC ACCESS/DLL32

MAGIC ACCESS/DLL32 Ver2.2

■アップデート情報(1998.10.5)

特徴

Btrieveファイルを手軽にアクセス

Btrieveファイルにはフィールド情報が含まれていません。このため、C言語でBtrieveファイルを扱うためにはファイルの構造を、そのプログラム中に記述しておく必要があります。しかし、このような方法では、将来的なメンテナンス効率が悪化してしまいます。例えば、フィールド構造が変更されたときなど、プログラムの修正が必須です。これでは、開発効率だけでなく将来の発展の可能性までもが著しく疎外されます。

MAGIC ACCESSでは、ファイル構造をプログラムの外部から動的に取得することができるため、フィールド構造の変更によるプログラムの修正を不要にできる場合があります。dbMAGICの場合には、ファイル辞書を内部形式で辞書出力したものをフィールドファイルと呼び、このフィールドファイルからフィールド情報を取得できます。

Btrieveファイルを使用したアプリケーションの多くは、DDFと呼ばれるファイルでフィールドの情報などを管理しています。MAGIC ACCESSではフィールドファイルからのフィールド情報取得に加え、DDFからの取得も可能です。

dbMAGICの特殊な記憶形式に対応

dbMAGICには数多くの記憶形式があり、日付型、時間型やメモ型などのようにdbMAGIC以外のプログラムでは、その扱いに問題が生じるようなものも少なくありません。

MAGIC ACCESSでは、dbMAGICの特殊な記憶形式を、C言語で扱いやすくするための変換関数を用意しています。

Btrieve 6.15に対応

MAGIC ACCESSでは、Btrieve 6.15に対応しています。トランザクションや、ファイルのステータスを取得する関数なども用意しています。

Butil形式ファイルもサポート

Btrieve開発キットに付属しているButil.EXEが入出力できるファイル形式をButil形式としてサポートしています。Butil形式ファイルは順次読込,順次書込を高速に行うことができるので、作業ファイルとして用いれば高速な処理が期待できます。

他のC言語用ライブラリと組合わせて

一般に市販されているC言語用の各種ライブラリと組合わせて使用することも可能です。インターネット、イントラネットへの応用やFA制御を行うなど、いろいろな用途に利用できます。また、コマンドラインで動作するアプリケーションも開発できます。

動作環境

OS Microsoft Windows 95Microsoft Windows NT
Btrieve Btrieve 6.15(本パッケージにエンジンは付属しません。)
言語 Microsoft Visual C++ 5.0

MAGIC ACCESS旧バージョン(Ver2.1)との違い

Win32対応
Ver2.2は、Win32のOS環境のみ対応しています。
ソースコードの提供はありません。
dbMAGIC独自の排他制御には未対応

Ver2.1では、dbMAGICの独自方式による排他制御に対応していましたが、Ver2.2では、対応していませんので注意して下さい。但し、Btrieveのロックには対応しています。

削除された関数

Ml_Init()、Bf_Handle_Trap()、Btr_Handle_Trap()

変更された関数

Dd_Init(d_path、d_file、d_field、d_index)

従来、1度成功すると2度目移行は何もしないで成功を返していましたが、d_path、d_file、d_field、d_indexを再設定しますので、DDFの存在するディレクトリを変更することができます。

追加された関数

Dd_Free()

DDF関係の関数を使い終わったら必ず実行して下さい。不要になったメモリを開放します。

MAGIC ACCESSを用いて作成したプログラムの配布条件

MADLL32.DLLは、それを使用するプログラムと一緒に配布できます。

MADLL32.DLL単独での配布、それ以外のファイル全部、もしくはその一部を配布することはできません。また、MAGIC
ACCESSを使用するための情報をいかなる方法をもって配布、公開することもできません。

数機能概要(全関数一覧)

*が付いた関数は、Ver2.2 で削除された関数です。

排他制御関数

dbMAGICと互換性のある排他制御を行うための初期化を行います。また、トランザクション処理の制御を行います。

*Ml_Init( ) 排他制御環境を初期化する
Bf_Transaction( ) トランザクション操作(高水準)
Bf_Transaction_Stat( ) トランザクションの状態を得る(高水準)
Btr_Transaction( ) トランザクション操作(低水準)
Btr_Transaction_Stat( ) トランザクションの状態を得る(低水準)

DDFアクセス関数

DDFに対するアクセスを提供します。

Dd_Init( ) DDFをアクセスするための初期化を行う
Dd_Create( ) DDFを作成する
Dd_Open( ) DDFをオープンする
Dd_Close( ) DDFをクローズする
Dd_File_Read( ) DDFからファイルIDとファイル名称を読込む
Dd_Read( ) ファイルIDまたはファイル名称で指定されるファイルのフィールド情報をDDFから読込む
Dd_Write( ) ファイルのフィールド情報をDDFに追加する
Dd_Delete( ) ファイルIDまたはファイル名称で指定されるファイルのフィールド情報(ファイル定義)をDDFから削除する

フィールド情報関連関数

フィールド情報から各種詳細を取得したり、高水準アクセス関数で読込んだレコードから個々の項目を取得,設定するための各種関数を提供します。

Ff_Read( ) フィールド情報をファイルから読込む
Ff_Alloc( ) フィールド情報を定義するためのメモリ領域を確保する
Ff_Set_Fld( ) 1項目分のフィールド情報を定義する(dbMAGIC ver4.x相当のフィールド情報)
Ff_Set_Fld2( ) 1項目分のフィールド情報を定義する(dbMAGIC ver5.6相当のフィールド情報)
Ff_Set_Fld3( ) 1項目分のフィールド情報を定義する(DDF相当のフィールド情報)
Ff_Set_Key( ) 1つ分のキー情報を定義する(dbMAGIC相当のキー情報)
Ff_Set_Key2( ) 1つ分のキー情報を定義する(DDF相当のキー情報)
Ff_Free( ) Ff_Read( )、Ff_Alloc( )で確保されたメモリ領域を開放する
Ff_Find_Fld( ) 項目名から項目No.を得る
Ff_Find_Key( ) キー名からキーNo.を得る
Ff_Find_Keyseg( ) キー名と項目名から、その項目のキー中のセグメントNo.を得る
Ff_Make_Keyspec( ) フィールド情報からBtrieveのキースペックを生成する
Ff_Key_Set( ) キーNo.とセグメントNo.で指定されるキーバッファ中のキーセグメントに値をセットする
Ff_Key_Set_Name( ) キー名とセグメントNo.で指定されるキーバッファ中のキーセグメントに値をセットする
Ff_Fld_Get( ) 項目No.で指定される項目をレコードバッファから得る
Ff_Fld_Get_Name( ) 項目名で指定される項目をレコードバッファから得る
Ff_Fld_Put( ) レコードバッファの項目No.で指定される項目をセットする
Ff_Fld_Put_Name( ) レコードバッファの項目名で指定される項目をにセットする
Ff_Cvt2Magic( ) Btrieveイメージのレコードバッファの内容を、フィールド情報に基づきdbMAGICイメージに変換する
Ff_Cvt2Logical( ) 物理レコード(Btrieveイメージのレコードバッファ)の内容を、フィールド情報に基づき論理レコード(dbMAGICイメージ)に変換する
Ff_Cvt2Btrieve( ) dbMAGICイメージのレコードバッファの内容を、フィールド情報に基づきBtrieveイメージに変換する
Ff_Magic_Bufsize( ) dbMAGICイメージのレコードバッファのサイズを得る
Ff_Logical_Bufsize( ) 論理レコード(dbMAGICイメージのレコードバッファ)のバッファサイズを得る
Ff_Btrv_Bufsize( ) Btrieveイメージのレコードバッファのサイズを得る
Ff_Fixed_Size( ) レコードバッファの固定長部分のサイズを得る
Ff_Variable( ) 可変長レコードの有無を得る
Ff_Key_Bufsize( ) キーバッファのサイズを得る
Ff_Fld_Num( ) 項目数を得る
Ff_Key_Num( ) キー数を得る
Ff_Keyseg_Num( ) キーセグメントの総数を得る
Ff_Magic_Ver( ) フィールドファイルを生成したdbMAGICのバージョンを得る
Ff_File_Name( ) フィールドファイルに定義されているファイル名を得る
Ff_File_Desc( ) フィールドファイルに定義されているファイルの名称を得る
Ff_File_Id( ) DDFから読込んだフィールド情報からファイルIDを得る
Ff_Fld_Info( ) 項目の定義情報を得る
Ff_Fld_Id( ) DDFから読込んだフィールド情報から得られた項目の定義情報からフィールドIDを得る
Ff_Fld_N_Id( ) DDFから読込んだフィールド情報から項目No.で指定される項目のフィールドIDを得る
Ff_Fld_Name( ) 項目の定義情報から項目名を得る
Ff_Fld_N_Name( ) 項目No.で指定される項目の項目名を得る
Ff_Fld_Len( ) 項目の定義情報から項目の物理的なサイズを得る
Ff_Fld_N_Len( ) 項目No.で指定される項目の物理的なサイズを得る
Ff_Fld_Type( ) 項目の定義情報から記憶形式を得る(dbMAGIC ver4.xの記憶形式)
Ff_Fld_N_Type( ) 項目No.で指定される項目の記憶形式を得る(dbMAGIC ver4.xの記憶形式)
Ff_Fld_Strg( ) 項目の定義情報から記憶形式を得る(dbMAGIC ver5.6の記憶形式)
Ff_Fld_N_Strg( ) 項目No.で指定される項目の記憶形式を得る(dbMAGIC ver5.6の記憶形式)
Ff_Fld_Ftype( ) 項目の定義情報からFf_Flg_Get_Tyep( )で使用するための型を得る
Ff_Fld_N_Ftype( ) 項目No.で指定される項目のFf_Flg_Get_Tyep( )で使用するための型を得る
Ff_Fld_Attr( ) 項目の定義情報から属性を得る
Ff_Fld_N_Attr( ) 項目No.で指定される項目の属性を得る
Ff_Fld_Pic( ) 項目の定義情報から表示書式を得る
Ff_Fld_N_Pic( ) 項目No.で指定される項目の表示書式を得る
Ff_Fld_Whle( ) 項目の定義情報から整数部の桁数を得る
Ff_Fld_N_Whle( ) 項目No.で指定される項目の整数部の桁数を得る
Ff_Fld_Deci( ) 項目の定義情報から小数部の桁数を得る
Ff_Fld_N_Deci( ) 項目No.で指定される項目の小数部の桁数を得る
Ff_Fld_Rng( ) 項目の定義情報から項目の範囲を得る
Ff_Fld_N_Rng( ) 項目No.で指定される項目の範囲を得る
Ff_Fld_B_Off( ) 項目の定義情報からBtrieveイメージのレコードバッファ中のオフセットを得る
Ff_Fld_N_B_Off( ) 項目No.で指定される項目のBtrieveイメージのレコードバッファ中のオフセットを得る
Ff_Fld_M_Off( ) 項目の定義情報からdbMAGICイメージのレコードバッファ中のオフセットを得る
Ff_Fld_N_M_Off( ) 項目No.で指定される項目のdbMAGICイメージのレコードバッファ中のオフセットを得る
Ff_Key_Info( ) キーの定義情報を得る
Ff_Key_Id( ) DDFから読込んだフィールド情報から得られたキーの定義情報からキーIDを得る
Ff_Key_N_Id( ) DDFから読込んだフィールド情報からキーNo.で指定されるキーのキーIDを得る
Ff_Key_Name( ) キーの定義情報からキー名を得る
Ff_Key_N_Name( ) キーNo.で指定されるキーのキー名を得る
Ff_Key_Len( ) キーの定義情報からキーのサイズを得る
Ff_Key_N_Len( ) キーNo.で指定されるキーのサイズを得る
Ff_Key_Unique( ) キーの定義情報からキーがユニークかどうかを得る
Ff_Key_N_Unique( ) キーNo.で指定されるキーのユニークかどうかを得る
Ff_Key_Keyseg_Num( ) キーの定義情報から構成するキーセグメント数を得る
Ff_Key_N_Keyseg_Num( ) キーNo.で指定されるキーを構成するキーセグメント数を得る
Ff_Key_Keyseg( ) キーの定義情報からキーセグメントの定義情報を得る
Ff_Keyseg_Fldname( ) キーセグメントの定義情報から対応する項目名を得る
Ff_Keyseg_N_Fldname( ) キーの定義情報中のn番目のキーセグメントに対応する項目名を得る
Ff_Keyseg_M_N_Fldname( ) キーNo.で指定されるキーのn番目のキーセグメントに対応する項目名を得る
Ff_Keyseg_Fld( ) キーセグメントの定義情報から対応する項目No.を得る
Ff_Keyseg_N_Fld( ) キーの定義情報中のn番目のキーセグメントに対応する項目No.を得る
Ff_Keyseg_M_N_Fld( ) キーNo.で指定されるキーのn番目のキーセグメントに対応する項目No.を得る
Ff_Keyseg_Len( ) キーセグメントの定義情報からセグメントのサイズを得る
Ff_Keyseg_N_Len( ) キーの定義情報中のn番目のキーセグメントのサイズを得る
Ff_Keyseg_M_N_Len( ) キーNo.で指定されるキーのn番目のキーセグメントのサイズを得る
Ff_Keyseg_Down( ) キーセグメントの定義情報から降順か昇順かを得る
Ff_Keyseg_N_Down( ) キーの定義情報中のn番目のキーセグメントが降順か昇順かを得る
Ff_Keyseg_M_N_Down( ) キーNo.で指定されるキーのn番目のキーセグメントが降順か昇順かを得る
Ff_Keyseg_Koff( ) キーセグメントの定義情報からキーバッファ中のオフセットを得る
Ff_Keyseg_N_Koff( ) キーの定義情報中のn番目のキーセグメントのキーバッファ中のオフセットを得る
Ff_Keyseg_M_N_Koff( ) キーNo.で指定されるキーのn番目のキーセグメントのキーバッファ中のオフセットを得る
Ff_Keyseg_Boff( ) キーセグメントの定義情報から対応する項目のBtrieveイメージのレコードバッファ中のオフセットを得る
Ff_Keyseg_N_Boff( ) キーの定義情報中のn番目のキーセグメントに対応する項目のBtrieveイメージのレコードバッファ中のオフセットを得る
Ff_Keyseg_M_N_Boff( ) キーNo.で指定されるキーのn番目のキーセグメントに対応する項目のBtrieveイメージのレコードバッファ中のオフセットを得る
Ff_Keyseg_Moff( ) キーセグメントの定義情報から対応する項目のdbMAGICイメージのレコードバッファ中のオフセットを得る
Ff_Keyseg_N_Moff( ) キーの定義情報中のn番目のキーセグメントに対応する項目のdbMAGICイメージのレコードバッファ中のオフセットを得る
Ff_Keyseg_M_N_Moff( ) キーNo.で指定されるキーのn番目のキーセグメントに対応する項目のdbMAGICイメージのレコードバッファ中のオフセットを得る
Ff_Rec_Clr( ) レコードバッファを初期化する
Ff_Key_Clr( ) キーバッファを初期化する
Ff_Key_Set_All( ) キーNo.で指定されるキーを、レコードバッファ内の値でセットする
Ff_Key_Set_All_Name( ) キー名で指定されるキーを、レコードバッファ内の値でセットする
Ff_Fld_Get_Long( ) 項目No.で指定される数値型の項目をレコードバッファからlong型として得る
Ff_Fld_Get_Double( ) 項目No.で指定される数値型の項目をレコードバッファからdouble型として得る
Ff_Fld_Get_Str( ) 項目No.で指定される文字型の項目をレコードバッファからCの文字列として得る
Ff_Fld_Get_Logic( ) 項目No.で指定される論理型の項目をレコードバッファからint型として得る
Ff_Fld_Get_Date( ) 項目No.で指定される日付型の項目の年月日の各々をレコードバッファから得る
Ff_Fld_Get_Time( ) 項目No.で指定される時間型の項目の時分秒の各々をレコードバッファから得る
Ff_Fld_Get_Type( ) 項目No.で指定される項目を指定の型でレコードバッファから得る
Ff_Fld_Put_Long( ) long型の数値をレコードバッファの項目No.で指定される項目にセットする
Ff_Fld_Put_Double( ) double型の数値をレコードバッファの項目No.で指定される項目にセットする
Ff_Fld_Put_Str( ) Cの文字列をレコードバッファの項目No.で指定される項目にセットする
Ff_Fld_Put_Logic( ) int型の数値をレコードバッファの項目No.で指定される項目に論理型としてセットする
Ff_Fld_Put_Date( ) 年月日の各々をレコードバッファの項目No.で指定される項目に日付型としてセットする
Ff_Fld_Put_Time( ) 時分秒の各々をレコードバッファの項目No.で指定される項目に時間型としてセットする
Ff_Fld_Put_Type( ) レコードバッファの項目No.で指定される項目に指定の型で値をセットする

高水準アクセス関数

データファイルとのレコード単位のアクセス、および、読込まれたレコードに対するフィールド毎の参照や更新の各機能を提供します。

Bf_Create( ) Btrieveファイルをフィールド情報に基づいて作成する
Bf_Open( ) ファイルをオープンする
Bf_Open_Btr( ) Btrieveファイルをオープンする
Bf_Open_Bin( ) Butil形式ファイルをオープンする
Bf_Close( ) ファイルをクローズする
Bf_Close_All( ) Bf_Open( ), Bf_Open_Btr( ), Bf_Open_Bin( )でオープンされたファイルを全てクローズする
Bf_Get_Position( ) カレントレコードの位置を得る
Bf_Read( ) 読込方法を指定し、レコード読込む
Bf_Write( ) レコードを追加,更新する
Bf_Delete( ) レコードを削除する
Bf_Btrfile( ) 高水準アクセス関数でオープンされたBtrieveファイルのファイルディスクリプタから、低水準アクセスのファイルディスクリプタを得る
Bf_Binfile( ) 高水準アクセス関数でオープンされたButil形式ファイルのファイルディスクリプタから、低水準アクセスのファイルディスクリプタを得る
Bf_Get_Type( ) ファイルのタイプ(Btrieve, Butil形式)を得る
Bf_Fldfile( ) オープン時に与えられたファイルのフィールド情報を得る
Bf_Lock( ) カレントレコードのマニュアルレコードロックを行う
Bf_Unlock( ) マニュアルレコードロックを解除する
Bf_Check( ) Btrieveファイルとフィールド情報の整合性をチェックする
*Bf_Handle_Trap( ) Btrieve対応Ctrl+Cハンドラ

データリンク関数

複数のファイルを1つのファイルであるかのように操作するための機能を提供します。

Dl_Link( ) データリンクを作成する
Dl_Unlink( ) データリンクを解放する
Dl_Read( ) データリンクによりレコードを読込む
Dl_Write( ) データリンクによりレコードを追加,更新する
Dl_Lock( ) データリンクによるカレントレコードのマニュアルレコードロックを行う
Dl_Unlock( ) データリンクによるマニュアルレコードロックを解除する

変換関数

dbMAGICで使用される各種の記憶形式とC言語で扱う型を相互に変換する関数を提供します。

Cv_Num2Long( ) dbMAGIC ver5.6の任意の数値型をlong型に変換する
Cv_Num2Double( ) dbMAGIC ver5.6の任意の数値型をdouble型に変換する
Cv_Fld2Num( ) フィールド情報で指定される型の値を任意の数値型に変換する
Cv_Numeric( ) dbMAGIC ver5.6の任意の数値型を相互に変換する
Cv_Str2Lstr( ) Cの文字列(Z文字列:‘’で終端される文字列)をL文字列(先頭1Byteが文字長を示す)に変換する
Cv_Lstr2Str( ) L文字列をCの文字列に変換する
Cv_Date( ) MAGIC日付型を年月日の各々に変換する
Cv_Mdate( ) 年月日の各々をMAGIC日付型に変換する
Cv_Date2Ymd( ) dbMAGIC ver5.6の任意の日付型を年月日の各々に変換する
Cv_Ymd2Date( ) 年月日の各々をdbMAGIC ver5.6の任意の日付型に変換する
Cv_Dates( ) dbMAGIC ver5.6の任意の日付型を相互に変換する
Cv_Threshold( ) 西暦を2桁で扱うときの19??年と20??年の分岐点を設定する
Cv_Time( ) MAGIC時間型を時分秒の各々に変換する
Cv_Mtime( ) 時分秒の各々をMAGIC時間型に変換する
Cv_Time2Hmsh( ) dbMAGIC ver5.6の任意の時間型を時分秒,1/100秒の各々に変換する
Cv_Hmsh2Time( ) 時分秒,1/100秒の各々をdbMAGIC ver5.6の任意の時間型に変換する
Cv_Times( ) dbMAGIC ver5.6の任意の時間型を相互に変換する

低水準アクセス関数(Btrieveファイル)

Btrieveファイルを直接アクセスするための機能を提供します。

Btr_Create( ) Btrieveファイルを作成する
Btr_Open( ) Btrieveファイルをオープンする
Btr_Close( ) ファイルをクローズする
Btr_Close_All( ) Btr_Open( )でオープンされたファイルを全てクローズする
Btr_Get_Cur_Position( ) カレントレコードの位置を得る
Btr_Read( ) 読込方法を指定し、レコード読込む
Btr_Read_With_Lock( ) 読込方法を指定し、レコードロックをかけてレコード読込む
Btr_Write( ) レコードを追加,更新する
Btr_Delete( ) レコードを削除する
Btr_Create_Index( ) サプルメントインデックスを追加する
Btr_Drop_Index( ) サプルメントインデックスを削除する
Btr_Lock( ) カレントレコードのシングルレコードロックを行う
Btr_Unlock( ) シングルレコードロックを解除する
Btr_Lock2( ) マルチレコードロックを行う
Btr_Unlock2( ) マルチレコードロックを解除する
Btr_Continuous( ) Btrieve ver6.xのContinuousオペレーションを発行する
Btr_Set_Owner( ) オーナーネームを設定する
Btr_Clr_Owner( ) オーナーネームを解除する
Btr_Stat( ) ファイル情報を得る
*Btr_Handle_Trap( ) Btrieve対応Ctrl+Cハンドラ

低水準アクセス関数(Butil形式ファイル)

Butil形式ファイルを直接アクセスするための機能を提供します。

Bin_Open( ) Butil形式ファイルをオープンする
Bin_Close( ) ファイルをクローズする
Bin_Line( ) ファイルの現在の行位置を得る
Bin_Read( ) 1レコード読込む(シーケンシャルリードのみ)
Bin_Write( ) 1レコード書込む(シーケンシャルライトのみ)

Btrieve直接呼出関数

Btrieveの機能を直接呼び出します。

Btrv( ) Btrieve直接コール
PAGETOP