スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)
ここでは,UOCを使用した表の再編成の例について説明します。
なお,使用例中のUOCコーディング例は,サンプルデータべースとして提供されています。格納ディレクトリは,%PDDIR%\sample\sampleUOCです。
表の再編成をするときに,データベースに登録された日時が2001年以前のデータを削除します。
CREATE TABLE 会員名簿 (会員番号 INTEGER,
会員名 NCHAR(20),
会員住所 NVARCHAR(100),
入会日時 DATE NOT NULL WITH DEFAULT);
pdrorg -k rorg -t 会員名簿 制御情報ファイル |
unload アンロードデータファイル名 uoc_lib=ライブラリ名 unlduoc entry=old_data_delete |
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <pdutluoc.h> ..........................................................1
void old_data_delete (
UTL_UOC_INF *uocinf /* A(UOC interface area) */ ...2
) {
UTL_UOC_DATA_BUF *addr_list; /* A(data address list) */
unsigned char *date_adr; /* A(DATE) */
static unsigned char cyear[2]; /* compare year */
switch(uocinf->req_cd){ ....................................................3
case UTL_UOC_START:
/*------------------------------------------------------------------------*/
/* START */
/*------------------------------------------------------------------------*/
cyear[0] = 0x20; /* The 21th century */
cyear[1] = 0x01; /* (2001) */
uocinf->rtn_code = UTL_UOC_NML;
break;
case UTL_UOC_EDIT:
/*------------------------------------------------------------------------*/
/* EDIT */
/*------------------------------------------------------------------------*/
addr_list = uocinf->data_adr;
date_adr = addr_list->data[3];
if (memcmp(date_adr,cyear,sizeof(cyear)) < 0){
uocinf->unload_flg = UTL_UOC_ROWNOPUT;
}else{
uocinf->unload_flg = UTL_UOC_ROWPUT;
} ......................................................................4
uocinf->rtn_code = UTL_UOC_NML;
break;
case UTL_UOC_END:
case UTL_UOC_TERM:
/*----------------------------------------------------------------------*/
/* END */
/*----------------------------------------------------------------------*/
uocinf->rtn_code = UTL_UOC_NML;
break;
default:
strcpy(uocinf->err_msg,"Invalid request code");
uocinf->rtn_code = UTL_UOC_ERR;
}
return;
}
|
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.