#include #include #include #include /* DATABASE API */ #define TRUE 0 #define FALSE -1 typedef struct { int BYTESPRO; int BYTESAVL; char MSGID[7]; char RESRVD; char EXCPDATA[100]; } ERRSTRUCTURE; /* Define the error return structure */ ERRSTRUCTURE errcode;/* Error Code Structure for RCVMSG */ void main(void){ char FILE[11], FILLIB[11], FILFILLIB[21], point[24], *formatBuf; Qdb_Qdbfh_t qdb_qdbfh_t; /* ファイル定義ヘッダー */ Qdb_Qdbfh_t* qdb_qdbfh; Qdb_Qdbfhflg_t* qdb_qdbfhflg; int res, format_size; printf("** TESTACP: キーつきかどうか判断する **\n"); getchar(); errcode.BYTESAVL = 0; errcode.BYTESPRO = sizeof(errcode); strcpy(FILFILLIB, "SEQTRN QTRFIL "); QDBRTVFD(&qdb_qdbfh_t, sizeof(Qdb_Qdbfh_t), FILFILLIB, "FILD0200", FILFILLIB, "*FIRST ", "0", "*FILETYPE ", "*EXT ", &errcode); if(errcode.BYTESAVL != 0){/*ERR*/ printf("TESTACP[%d] QBRTVFD のエラー \n", __LINE__); getchar(); exit(-1); }/*ERR*/ else{/* 長さの取得は成功 */ format_size = qdb_qdbfh_t.Qdbfyavl; formatBuf = (char*)malloc(format_size + 1); QDBRTVFD((char*)formatBuf, format_size, FILFILLIB, "FILD0100", FILFILLIB, "*FIRST ", "0", "*FILETYPE ", "*EXT ", &errcode); if(errcode.BYTESAVL != 0){/*ERR*/ free(formatBuf); printf("TESTACP[%d] QBRTVFD のエラー \n", __LINE__); getchar(); exit(-1); }/*ERR*/ else{/*API バッファー取得成功 */ qdb_qdbfh = (Qdb_Qdbfh_t*)(char*)formatBuf; qdb_qdbfhflg = (Qdb_Qdbfhflg_t*)(qdb_qdbfh + qdb_qdbfh->Qdbfjorn); if(qdb_qdbfhflg->Qdbfhfky == 1) res = TRUE; else res = FALSE; free(formatBuf); memcpy(FILE, FILFILLIB, 10); FILE[10] = 0x00; memcpy(FILLIB, &FILFILLIB[10], 10); FILLIB[10] = 0x00; if(res == TRUE){ printf("TESTACP[%d] %s/%s はキーつきの索引ファイルです。 \n", __LINE__, } else{ printf("TESTIDX[%s] %s/%s は順次ファイルです。 \n", __LINE__, FILLIB, FI } getchar(); exit(0); }/*API バッファー取得成功 */ }/* 長さの取得は成功 */ }