【機能】
DPCFEXPORTでホストに送信したファイルを、ホスト側のデータベースに変換、またはホスト側のデータベースからDPCFIMPORTで受信可能なファイルに変換するための情報を、ホスト側に通知します。本機能は、DB変換とも呼びます。
本機能を使用するために、以下の関数を提供しています。運用形態によって、どちらを使用するか決定してください。
(1) XDpc_DBconvert( )
(2) XDpc_DBconvreq( )、XDpc_DBconvrsp( )
(1)は、他の機能で提供している関数と同じく完了復帰型です。(2)は、即時復帰型の関数を2つ使用します。(2)は(1)に比べて、以下の機能が追加されています。
条件式の指定が可能
変換処理中の変換済レコード数を通知する
ホスト詳細コードを通知する
(1) XDpc_DBconvert( )を使用する場合
【書式】
unsigned int WINAPI XDpc_DBconvert(dpcdbcom,dpcdbfct,apl_id) struct dpcdbcom *dpcdbcom ; struct dpcdbfct *dpcdbfct ; unsigned short apl_id ;
◆構造体の説明◆
dpcdbcom | リターンコード等が通知されます。 |
struct dpcdbcom { long db_convrec ; unsigned short db_retcode ; unsigned short db_detail ; char db_reserve[16] ; } dpcdbfct :DB変換のための情報を指定します。 struct dpcdbfct { char db_sysname[8] ; char db_fid[8] ; long db_prime ; long db_second ; long db_recsize ; char db_vol[6] ; char db_reserve[16] ; }
【入力】
char db_sysname[8] | DPCCONNECTで指定した相手システム名を8バイトで指定します。7バイト以内で指定する場合は、有効な名前の直後に空白文字かNULLを指定してください。 |
char db_fid[8] | DB変換対象となるホストのファイル識別名(一時名)を8バイトで指定します。ホストのファイル識別名を7バイト以内で指定する場合は、有効な名前の直後に空白文字かNULLを指定してください。 |
long db_prime | ホストのファイルが必要とする初期容量を、レコード数で指定します。ホスト側の設定によっては省略可能です。省略する場合は、ボリューム通し番号も省略するようにしてください。 |
long db_second | ホストのファイルが必要とする二次容量をレコード数で指定します。ホスト側の設定によっては省略可能です。省略する場合は、ボリューム通し番号も省略するようにしてください。 |
long db_recsize | ホストのファイルのレコード長を指定します。
ホスト側の設定によっては省略可能です。省略する場合は、ボリューム通し番号も省略するようにしてください。 |
char db_vol[6] | ホストのファイルを新規に作成する場合に、ファイルを作成するボリューム通し番号を6バイトで指定します。ホスト側の設定によっては省略可能です。省略する場合は、6バイトすべてに空白文字を入れるか、1バイト目にNULLを入れてください。本パラメータを省略した場合、初期容量、二次容量、レコード長パラメータも省略したものとして扱われます。 |
char db_reserve[16] | システム予約領域です。NULLを指定してください。 |
unsigned short apl_id | DPCOPENで通知されたアプリケーションの識別子を指定します。 |
【関数返却値】
リターンコードと同じ値が返されます。
【出力】
long db_convrec | 変換レコード数が通知されます。 |
unsigned short db_retcode | リターンコードが返されます。詳細は、「DP/Cライブラリ V7.2 使用手引書 付録C リターンコード」を参照してください。 |
unsigned short db_detail | ローカルエラーコードが返されます。詳細は、「DP/Cライブラリ V7.2 使用手引書 付録C リターンコード」を参照してください。 |
char db_reserve[16] | システム予約領域です。 |
注意
DPCDBCONVERTの入力パラメータである、初期容量、二次容量、レコード長、ボリューム通し番号について、省略する場合はこれら4つのパラメータをすべて省略し、設定する場合はすべて設定してください。また、ボリューム通し番号を省略すると、他の3つのパラメータもすべて省略されたものとして、ホストと通信します。
参考
初期容量、二次容量、レコード長、ボリューム通し番号の設定値について
RDBII/SymfoWAREに格納する場合は省略可能です(AP/JOIN V11以降)。
RDBII/SymfoWAREから抽出する場合は端末側からの設定がなければ、AP/JOIN内でそれぞれの引数を用意しています(AP/JOIN V12以降)。
最新版のAP/JOINでは格納/抽出ともに省略可能です。
(2) XDpc_DBconvreq( )、XDpc_DBconvrsp( )を使用する場合
●依頼関数
【書式】
unsigned int WINAPI XDpc_DBconvreq(dbconv_id, dpccom2, dpcconc2, apl_id) long *dbconv_id ; struct dpcdbcom2 *dpccom2 ; struct dpcdbfct2 *dpcconc2 ; unsigned short apl_id ;
◆構造体の説明◆
dpccom2 | リターンコード等が通知されます。 |
struct dpcdbcom2 { long db_convrec ; unsigned short db_retcode ; unsigned short db_detail ; long db_hostdetail ; char db_reserve[12] ; }
dpcconc2 | ホストデータベースへの変換、パソコンへ受信可能なファイルへの変換のための情報を指定します。 |
struct dpcdbfct2 { char db_sysname[8] ; char db_fid[8] ; long db_prime ; long db_second ; long db_recsize ; char db_vol[6] ; short db_clistleng ; char *db_clist ; char db_reserve[16] ; }
【入力】
char db_sysname[8] | DPCCONNECTで使用した相手システム名を8バイトで指定します。7バイト以内で指定する場合は、有効な名前の直後に空白文字かNULLを指定してください。 |
char db_fid[8] | 変換対象となるホストのファイル識別名(一時名)を8バイトで指定します。7バイト以内で指定する場合は、有効な名前の直後に空白文字かNULLを指定してください。 |
long db_prime | ホストのファイルが必要とする初期容量をレコード数で指定します。ホスト側の設定によっては省略可能です。省略する場合はボリューム通し番号も省略するようにしてください。 |
long db_second | ホストのファイルが必要とする二次容量をレコード数で指定します。ホスト側の設定によっては省略可能です。省略する場合はボリューム通し番号も省略するようにしてください。 |
long db_recsize | ホストのファイルのレコード長を指定します。
ホスト側の設定によっては省略可能です。省略する場合はボリューム通し番号も省略するようにしてください。 |
char db_vol[6] | ホストのファイルを新規に作成する場合に、ファイルを作成するボリューム通し番号を6バイトで指定します。ホスト側の設定によっては省略可能です。本パラメータを省略した場合、初期容量、二次容量、レコード長パラメータも省略したものとして扱われます。 |
short db_clistleng | 条件式の長さを指定します。 |
char *db_clist | 変換を行う際に必要なデータを選択する条件式を指定します。また、条件式を記述したテキストファイルを指定することもできます。テキストファイルを指定する場合はファイル名をシングルクォートで囲んで指定してください。条件式は、最大4096まで指定できますが、条件式に記述できるバイト数は次の式により求めてください。また、ホスト側の設定によっては省略可能です。 |
《式》 | |
char db_reserve[16] | システム予約領域です。NULLを指定してください。 |
unsigned short apl_id | DPCOPENで通知されたアプリケーションの識別子を指定します。 |
【関数返却値】
リターンコードと同じ値が返されます。
【出力】
long db_convec | 現在未使用です。 |
unsigned short db_retcode | リターンコードが返されます。詳細は、「DP/Cライブラリ V7.2 使用手引書 付録C リターンコード」を参照してください。 |
unsigned short db_detail | ローカルエラーコードが返されます。詳細は、「DP/Cライブラリ V7.2 使用手引書 付録C リターンコード」を参照してください。 |
long db_hostdetail | 現在未使用です。 |
char db_reserve[12] | システム予約領域です。NULLを指定してください。 |
long *dbconv_id | 正常終了した場合、DB変換の識別子が通知されます。通知されたDB変換の識別子を受信関数で指定してください。 |
●受信関数
【書式】
unsigned int WINAPI XDpc_DBconvrsp(dbconv_id,complete,dpccom2,apl_id) long dbconv_id ; unsigned short *complete ; struct dpcdbcom2 *dpccom2 ; unsigned short apl_id ;
◆構造体の説明◆
dpccom2 struct dpcdbcom2 { long db_convrec ; unsigned short db_retcode ; unsigned short db_detail ; long db_hostdetail ; char db_reserve[12] ; }
【入力】
long dbconv_id | 依頼関数で通知されたDB変換の識別子を指定します。 |
unsigned short apl_id | DPCOPENで通知されたアプリケーションの識別子を指定します。 |
【関数返却値】
リターンコードと同じ値が返されます。
【出力】
unsigned short *complete | 変換処理が終了したかどうかが通知されます。
|
long db_convrec | 受信関数を発行した時点での変換レコード数が通知されます。 |
注意
ホストがPG6000/GP6000/Kシリーズの場合は、変換処理がすべて終了した後にのみ変換レコード数が通知されます。
unsigned short db_retcode | リターンコードが返されます。詳細は、「DP/Cライブラリ V7.2 使用手引書 付録C リターンコード」を参照してください。 |
unsigned short db_detail | ローカルエラーコードが返されます。詳細は、「DP/Cライブラリ V7.2 使用手引書 付録C リターンコード」を参照してください。 |
long db_hostdetail | ホスト詳細コードが返されます。 |
注意
ホストがGS/PRIMEFORCE/Mシリーズの場合は、通知されるホスト詳細コードは、AP/JOINが出力するメッセージの下線部分になります。詳細は、AP/JOINのマニュアルを参照してください。
また、AP/JOINのメッセージの出力元の種類はDB変換になりますので、KZEのあとは「D」となります。
例)
AP/JOINが出力するメッセージ | → | ホスト詳細コード |
KZED502E | 0x0502 |
ホストがPG6000/GP6000/Kシリーズの場合は、通知されるホスト詳細コードは、ASPシステムメッセージ集のメッセージ番号になります。詳細は、ASPシステムメッセージ集のマニュアルを参照してください。
char db_reserve[12] | システム予約領域です。NULLを指定してください。 |
注意
DPCDBCONVERTの入力パラメータである、初期容量、二次容量、レコード長、ボリューム通し番号について、省略する場合はこれら4つのパラメータをすべて省略し、設定する場合はすべて設定してください。また、ボリューム通し番号を省略すると、他の3つのパラメータもすべて省略されたものとして、ホストと通信します。
参考
初期容量、二次容量、レコード長、ボリューム通し番号の設定値について
RDBII/SymfoWAREに格納する場合は省略可能です(AP/JOIN V11以降)。RDBII/SymfoWAREから抽出する場合は端末側からの設定がなければ、AP/JOIN内でそれぞれの引数を用意しています(AP/JOIN V12以降)。最新版のAP/JOINでは格納/抽出ともに省略可能です。