Access数据库的文本、备注数据类型的COLUMN

在access2013中,备注类型已经改名为长文本,原来的文本字段改名为短文本,短文本字段可以指字段长度。

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为文本字段 }}

版权声明:本文为博主原创文章,,未经博主允许不得转载。

谁是谁生命的点缀。

Access数据库的文本、备注数据类型的COLUMN

相关文章:

你感兴趣的文章:

标签云: