Access數據庫的文本、備註數據類型的COLUMN_FLAGS說明

在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爲文本字段
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章