static char sccsid[]="%Z% %M% %I% %E% %U%";
/********************************************/
/* 検索処理									*/
/*	 結合条件テーブル作成関数				*/
/*------------------------------------------*/
/********************************************/
#include "colmn.h"

#if 0
#define GET_IGETA_CHAR(n,b) {  \
		pInfoParm = pScrPrCT->Vary->TBL_igeta[(n)];  \
		memcpy((b), pInfoParm->pi_data, pInfoParm->pi_dlen); \
		*((char *)(b)+pInfoParm->pi_dlen)='\0'; \
	}
#else
#define GET_IGETA_CHAR(n,b) {  \
		pInfoParm = cl_get_var_ent(pScrPrCT->Vary->pTBL_igeta,(n)+1); \
		memcpy((b), pInfoParm->pi_data, pInfoParm->pi_dlen); \
		*((char *)(b)+pInfoParm->pi_dlen)='\0'; \
	}
#endif
#define CLEAR_AREA(m)  {memset((m),0,sizeof((m)));}

extern CLPRTBL    CLprocTable;
extern GlobalCt   GlobTable;
extern CatCondTBL CatCondTbl;


int cl_sl_make_jnt_table()
{
	parmList   rPrmp[READ_PARMNUM]; /* select コマンドを作成するための構造体 */
	parmList  *pPrmp[READ_PARMNUM]; /* 構造体への ポインター の配列          */
	ScrPrCT   *pScrPrCT;			/* スクリプト・テーブル                  */
	tdtInfoParm  rInfoParm;
	tdtInfoParm  *pInfoParm;
	char  buf[64];
	int   i;
	int   iRc;

/*
*** 初期化
*/
	iRc = NORMAL;
	memset(rPrmp,0,sizeof(rPrmp));
	memset(pPrmp,0,sizeof(pPrmp));

/*
*** カレント・スクリプト・テーブルの探索
*/
	if (!( pScrPrCT = cl_search_src_ct())) {
		ERROROUT(FORMAT(381));		/* カレント・スクリプト・テーブルが見つからない */
		return ECL_SYSTEM_ERROR;
	}

/*
*** 検索結果を読み込むための設定
*/
	/* データ格納エリアID */
	rPrmp[0].prp    = JNT_TABLE_AREAID;
	rPrmp[0].prmlen = AREA_ID_SIZE;

	/* タプル番号 */
/*
	rPrmp[1].prp    = "1";
	rPrmp[1].prmlen = 1;
*/

	/* ポインター配列に実体のアドレスをセット */
	pPrmp[0] = &rPrmp[0];
	pPrmp[1] = NULL;

/*
*** 検索条件テーブルを作成
*/
	/* 検索結果のタプル数分ループ */
	for (i=0;i<GlobTable.tuppl;i++) {
		/* 検索結果を1タプル読み込む */
		if (iRc=cl_process_read(1,pPrmp,NULL)) {
					/* 検索結果の読み込みに失敗 */
			ERROROUT(FORMAT(385));
			return iRc;
		}

		/* 検索ビュー名 */
		GET_IGETA_CHAR(0, buf);
	/*	CLEAR_AREA(CatCondTbl.Line[i].ViewName); */
		strcpy(CatCondTbl.Line[i].ViewName, buf);

		/* 検索アトリビュート名 */
		GET_IGETA_CHAR(1, buf);
	/*	CLEAR_AREA(CatCondTbl.Line[i].AttrName); */
		strcpy(CatCondTbl.Line[i].AttrName, buf);

		/* 検索結合識別番号 */
		GET_IGETA_CHAR(2, buf);
	/*	CLEAR_AREA(CatCondTbl.Line[i].CatRecNumber); */
		CatCondTbl.Line[i].CatRecNumber = atoi(buf);
	}
	/* テーブル行数 */
	CatCondTbl.iItemNum = GlobTable.tuppl;

	return iRc;
}
