注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发数据库Access → 文章内容

Access数据库的文本、备注数据类型的COLUMN_FLAGS说明

作者:佚名 来源:本站整理 发布时间:2008-5-22 13:49:41

Access数据库对于文本和备注类型的数据类型定义(DATA_TYPE)都是为130,无法直接区分,找了N多网页,包括MSDN都没有描述有关COLUMN_FLAGS的说明,还是自己分析一下:

COLUMN_FLAGS为64位(8字节)的十六进制的值,组合了数据类型和必填字段等信息

其中最后2个字节有效,最后一个字节一直为0x0A,有变化的是最后第二个字节,即:
对于文本类型的为0x00;备注类型为0x80;
对于非必填字段为0x40;必填字段为0x60

组合后:
文本必填: 0x6A
文本非必填:0x4A
备注必填: 0xEA
备注非必填:0xCA

最后可以得到COLUMN_FLAGS右移7位后可以区分文本类型和备注类型

01
02 DataTable dt = m_OLEDBCon.GetOleDbSchemaTable(  
03 OleDbSchemaGuid.Columns,  
04 new object[] ...{null, null, "表名称", null});  
05
06 DataRow[] drs = dt.Select("COLUMN_NAME='字段名称'");  
07 if(drs.Length > 0 && Convert.ToInt32(drs[0]["DATA_TYPE"]) == 130) ...{  
08 //文本类型  
09 if ( (Convert.ToInt64(drs[0]["COLUMN_FLAGS"]) >> 7) == 1)...{  
10 //=1为备注字段  
11 }
else...{  
12 //=0为文本字段  
13 }
  
14 }
  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved