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

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  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位后可以区分文本类型和备注类型
  DataTable dt = m_OLEDBCon.GetOleDbSchemaTable(
  OleDbSchemaGuid.Columns,
  new object[] {null, null, "表名称", null});
  DataRow[] drs = dt.Select("COLUMN_NAME='字段名称'");
  if(drs.Length > 0 && Convert.ToInt32(drs[0]["DATA_TYPE"]) == 130) {
  //文本类型
  if ( (Convert.ToInt64(drs[0]["COLUMN_FLAGS"]) >> 7) == 1){
  //=1为备注字段
  }else{
  //=0为文本字段
  }
  } http://ks.examda.com

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答