Access数据库的文本、备注数据类型的COLUMN_FLAGS说明
2008-05-22 10:10
330 查看
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为文本字段
}
}
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_FLAGS说明(转)
- Access数据库的文本、备注数据类型的COLUMN_FLAGS说明(转)
- Access数据库的文本、备注数据类型的COLUMN_FLAGS说明
- SqlServer 查询出列的一些基本信息,表名,列名,数据类型,备注说明,最大宽度,递增,是否为空,是否主键
- 解决ACCESS数据库修改备注类型数据时提示的“所有记录中均未找到搜索关键字”错误。
- 取数据数表及字段的[备注COMMENT]说明及字段类型
- 文本数据类型强调说明
- Access数据库中的数据类型说明
- ACCESS数据库 备注 数据类型 的 数据回写技术
- Java JDBC读取大文本类型数据(CLOB)
- Java中变量的说明,常量的表示方式,Java数据类型,个别运算符的说明
- SQL-2005系统数据类型说明
- DataBinding 与 mvvm 模式(一)文本类型数据绑定
- JNI学习积累之二 ---- 数据类型映射、域描述符说明
- 数据类型说明:int16,int32,int64,WORD
- c#疑难(二)之Access数据库日期数据类型的使用方法和其日期函数简介
- Sql Server函数全解(三)数据类型转换函数和文本图像函数
- ECMA-262 V7.0 中关于数据类型和值的说明
- jdbc_数据类型与日期问题_访问大段文本数据_二进制类型的数据
- JDBC保存和读取大文本数据类型