查找某个表的特定RECID行的主索引字段值

本文介绍了一个用于查找数据库表中主键索引的示例代码,通过该示例,读者可以了解到如何获取表的主键索引信息及其字段,并能够通过指定记录ID来查询对应的记录详情。

 

static void FindPrimaryIdx(Args _args)

{

     DictTable       dt;

     DictIndex       di;

     Common          cm;

     IndexID         idx;

     int             i, iCnt;

     FieldID         fid;

     FieldID         fids[,10];

     int             fidsCnt = 0;

     str             s;

     str             sTemp;

     int _tID=175,_rID=956968;//可以修改或使用参数传递

 

     ;

     dt  = new DictTable(_tid);

     if (dt) {

         idx = dt.primaryIndex();

         if (idx) {

             di  = dt.indexObject(idx);

             if (di) {

                 iCnt = di.numberOfFields();

                 for (i=1;i<=iCnt;i++) {

                     fid = di.field(i);

                     if (fid) {

                         fidsCnt++;

                         fids[fidsCnt] = fid;

                     }

                 }

             }

         }

         cm = dt.makeRecord();

         select firstonly * from cm

         where cm.RecId == _rid;

         if (cm.RecId) {

             // 找不到记录

             for (i=1;i<=fidscnt;i++) {

                 fid   = fids[i];

                 sTemp = strfmt('[%1]=[%2]',fieldId2Name(_tid, fid),cm.(fid));

                 if (s) s = s+',';

                 s        = s + sTemp;

                 info(s);

             }

         }

     }

 

}

CREATE TABLE "FASPFA130000000"."BAS_ASSET_INFO" ( "RECID" VARCHAR2(38), "ASSET_ID" VARCHAR2(38) NOT NULL, "BIZ_KEY" VARCHAR2(38), "AGENCY_CODE" VARCHAR2(60) NOT NULL, "MOF_DIV_CODE" VARCHAR2(9) NOT NULL, "START_DATE" TIMESTAMP(0) NOT NULL, "END_DATE" TIMESTAMP(0) NOT NULL, "IS_ENABLED" NUMBER(1,0) NOT NULL, "UPDATE_TIME" TIMESTAMP(0) NOT NULL, "IS_DELETED" NUMBER(1,0) NOT NULL, "CREATE_TIME" TIMESTAMP(0) NOT NULL, "ASSET_CODE" VARCHAR2(60) NOT NULL, "FI_ACCT_CLS_CODE" VARCHAR2(50) NOT NULL, "FIXED_ASSET_TYPE_CODE" VARCHAR2(36), "ASSET_NAME" VARCHAR2(1000) NOT NULL, "NUM_OR_AREA" NUMBER(15,4), "NUM_UNIT" VARCHAR2(60), "INIT_ASSET_VAL" NUMBER(18,2) NOT NULL, "MOF_APP" NUMBER(18,2) NOT NULL, "NON_MOF_APP" NUMBER(18,2) NOT NULL, "PRICE" NUMBER(18,2) NOT NULL, "POSTER_DATE" TIMESTAMP(0), "ACC_DEP_STA_CODE" VARCHAR2(2) NOT NULL, "DEPRECIATION_METHOD" VARCHAR2(1), "ACC_DEP_YEAR" NUMBER(8,0), "ACC_DEP_MONTH" NUMBER(8,0), "MONTH_ACC_DEP" NUMBER(18,2), "RESIDUAL_RATE" NUMBER(8,2), "ACC_DEP" NUMBER(18,2), "NET_VAL" NUMBER(18,2) NOT NULL, "FIXED_ASSET_STATE_CODE" VARCHAR2(2), "DISPOSAL_FORM_CODE" VARCHAR2(2), "DIPOS_CHANNEL_CODE" VARCHAR2(3), "DISPOSAL_DATE" TIMESTAMP(0), "DIPOS_EARN" NUMBER(18,2), "FIXED_ASSET_CATEGORY_CODE" VARCHAR2(3) NOT NULL, "IS_LAST_INST" NUMBER(1,0) NOT NULL, "FIXED_ASSET_TYPE_NAME" VARCHAR2(60), "FIXED_ASSET_STATE_NAME" VARCHAR2(60), "FI_ACCT_CLS_NAME" VARCHAR2(100) NOT NULL, "DISPOSAL_FORM_NAME" VARCHAR2(20), "DIPOS_CHANNEL_NAME" VARCHAR2(30), "DEPRECIATION_METHOD_NAME" VARCHAR2(30), "AGENCY_NAME" VARCHAR2(300) NOT NULL, "MOF_DIV_NAME" VARCHAR2(360) NOT NULL, "ACC_DEP_STA_NAME" VARCHAR2(20) NOT NULL, "INSPECT_ENTRY_DET_ID" VARCHAR2(38) NOT NULL, "FIXED_ASSET_CATEGORY_NAME" VARCHAR2(100), CONSTRAINT "PK_BAS_ASSET_INFO_ID" NOT CLUSTER PRIMARY KEY("ASSET_ID")) STORAGE(ON "ASSETS", CLUSTERBTR) ; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."RECID" IS '单位唯一标识'; COMMENT ON TABLE "FASPFA130000000"."BAS_ASSET_INFO" IS '资产基本信息'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ACC_DEP" IS '累计折旧/摊销'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ACC_DEP_MONTH" IS '已提折旧/摊销月数'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ACC_DEP_STA_CODE" IS '折旧/摊销状态代码'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ACC_DEP_STA_NAME" IS '折旧/摊销状态名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ACC_DEP_YEAR" IS '折旧/摊销年限'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."AGENCY_CODE" IS '单位代码'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."AGENCY_NAME" IS '单位名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ASSET_CODE" IS '资产编号'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ASSET_ID" IS '资产键'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."ASSET_NAME" IS '资产名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."BIZ_KEY" IS '业务唯一标 识'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."CREATE_TIME" IS '创建时间'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DEPRECIATION_METHOD" IS '折 旧 / 摊 销 方法'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DEPRECIATION_METHOD_NAME" IS '折旧/摊销方法名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DIPOS_CHANNEL_CODE" IS '处置渠道代 码'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DIPOS_CHANNEL_NAME" IS '处置渠道名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DIPOS_EARN" IS '处置收益'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DISPOSAL_DATE" IS '处置时间'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DISPOSAL_FORM_CODE" IS '处置形式代 码(1报废 2损失核销 3无偿划转 4转让 5对外捐赠 6置换 7其他 90已拆分 91已作废 92被合并)'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."DISPOSAL_FORM_NAME" IS '处置形式名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."END_DATE" IS '停用日期'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FIXED_ASSET_CATEGORY_CODE" IS '资产信息卡 分类代码'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FIXED_ASSET_CATEGORY_NAME" IS '资产信息卡分类名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FIXED_ASSET_STATE_CODE" IS '资产状态代 码(1在用 2出租出借 3闲置 4待处置 5盘亏 6逾期在用)'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FIXED_ASSET_STATE_NAME" IS '资产状态名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FIXED_ASSET_TYPE_CODE" IS '资产分类代 码'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FIXED_ASSET_TYPE_NAME" IS '资产分类名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FI_ACCT_CLS_CODE" IS '单位会计科 目代码'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."FI_ACCT_CLS_NAME" IS '单位会计科目名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."INIT_ASSET_VAL" IS '资产原'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."INSPECT_ENTRY_DET_ID" IS '关联业务唯一标识'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."IS_DELETED" IS '是否删除'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."IS_ENABLED" IS '是否启用'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."IS_LAST_INST" IS '是否终审'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."MOF_APP" IS '财政拨款'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."MOF_DIV_CODE" IS '财政区划代 码'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."MOF_DIV_NAME" IS '财政区划名称'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."MONTH_ACC_DEP" IS '月折旧/摊销额'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."NET_VAL" IS '净'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."NON_MOF_APP" IS '非财政拨款'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."NUM_OR_AREA" IS '数量/面积'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."NUM_UNIT" IS '数量计量单 位'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."POSTER_DATE" IS '记账日期'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."PRICE" IS '均价/单价'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."RESE_DATE" IS '储备年限'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."RESIDUAL_RATE" IS '残率'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."START_DATE" IS '启用日期'; COMMENT ON COLUMN "FASPFA130000000"."BAS_ASSET_INFO"."UPDATE_TIME" IS '更新时间'; 这种拉链下,重点是查询指定单位的历史数据应该以什么分区比较好,需要创建什么索引
最新发布
08-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fandyxie2014

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值