スケーラブルデータベースサーバ 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.