1. 程式人生 > >Access資料庫的文字、備註資料型別的COLUMN_FLAGS說明

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為文字欄位
    }
}

相關推薦

Access資料庫文字備註資料型別的COLUMN_FLAGS說明

在access2013中,備註型別已經改名為長文字,原來的文字欄位改名為短文字,短文字欄位可以指欄位長度。 Access資料庫對於文字和備註型別的資料型別定義(DATA_TYPE)都是為130,無法直接區分,找了N多網頁,包括MSDN都沒有描述有關COLUMN_FLAGS的

Mysql的基本使用(登陸&退出建立&刪除&選擇資料庫基本資料型別建立&刪除表格等)

登入mysql資料庫 mysql -h hostname -u username -p 如何hostname是本機的話,要替換為127.0.0.1或者是localhost 例子:mysql -h localhost -uroot -p 這樣輸完之後會換行讓你輸密碼,我們也可以直接把密

Mysql的基本使用(登陸&退出建立&刪除&選擇資料庫基本資料型別建立&刪除表格等)

登入mysql資料庫 mysql -h hostname -u username -p 如何hostname是本機的話,要替換為127.0.0.1或者是localhost 例子:mysql -h localhost -uroot -p 這樣輸完之後會換行讓你輸密碼,我

MySQL資料庫(二)---資料型別資料約束

資料型別 資料型別是指列、儲存過程引數、表示式和區域性變數的資料特徵,它決定了資料的儲存格式,代表了不同的資訊型別。 整形 TINYINT SMALLINT MEDIUMINT INT BIGINT 浮點型 M是數字總位數 D是小數

mysql資料庫textvarcharblob資料型別比較

MySQL存在text和blob: (1)相同 在TEXT或BLOB列的儲存或檢索過程中,不存在大小寫轉換,當未執行在嚴格模式時,如果你為BLOB或TEXT列分配一個超過該列型別的最大長度的值值,值被擷取以保證適合。如果截掉的字元不是空格,將會產生一條警告。使用嚴格SQL模式,會產生錯誤,並且值將被拒絕而不

3基本資料型別&運算

1、整型 整數型別: 無符號與有符號型別: 有符號型別:int、int8、int16、int32、int64 無符號型別:uint、uint8、uint16、uint32、uint64 基於架構的型別:int、uint、uintptr(視其作業系統而定,比如64位作業系統,int則對應i

31mysql資料型別

SQL語言組成部分: DDL: 資料定義語言(DATABASE、TABLE、VIEW) DML: 資料操作語言(SELECT、INSERT、REPLACE、UPDATE、DELETE) 完整性定義語言:DDL的一部分功能 主鍵、外來鍵、惟一鍵、條件、非空、事務 檢視定義:虛表,儲存下

redis介紹redis安裝redis持久化redis資料型別

一:redis介紹 Redis和Memcached類似,也屬於k-v資料儲存Redis官網redis.io, 當前最新穩定版4.0.1支援更多value型別,除了和string外,還支援hash、lists(連結串列)、sets(集合)和sorted sets(有序集合)redis使用了兩種檔案格式:全量資

day11 基礎測試題(python概念基本資料型別

1.執行python指令碼的兩種方式 第一種:通過在cmd中輸入python進入直譯器; 第二種:python 檔案路徑在linux下:給檔案賦予可執行許可權 ./1.py 執行它 2.簡述位、位元組的關係 8位等於一個位元組儲存的時候以位為單位,計算機處理時以自己為單位 3.簡述

Java基礎學習 一 (字符集識別符號關鍵字註釋變數基本資料型別非基本資料型別高精度數字)

一 字符集:        java採用Unicode字符集 包含65535個字元 二 識別符號:         由字母、數字、下劃線及美元符號等組成的一個字元序列,用來標識變數、方法名、類名、介面名等

ARM中charshortintlongfloatdouble資料型別佔多少位

arm是32位微控制器: char:1位元組 short:2位元組 int:4位元組 long:4位元組 float:4位元組 double:8位元組 如果遇到其他微控制器,可以用sizeof測量: printf("char: %d\n", s

【Redis】Redis資料庫及五種資料型別圖解

目錄 Redis資料庫: 是什麼? 優勢? 資料型別(五種): 1.字串: 2.hash型別: 3.list型別: 4.set型別: 5.zset型別: Redis資料庫: 是什麼? 一類新出現的,非關係型的,不支援SQL語法的,不支援事物,|

Java運算子引用資料型別流程控制語句

1運算子 1.1算術運算子 運算子是用來計算資料的符號。 資料可以是常量,也可以是變數。 被運算子操作的數我們稱為運算元。   算術運算子最常見的操作就是將運算元參與數學計算: 運算子 運算規則 範例 結果

6mysql資料型別介紹

MySQL資料型別,可以被分為3類:數值型別、日期和時間型別以及字串(字元)型別    方括號(“[”和“]”)指出可選的型別修飾符的部分   M       指出最大的顯示尺寸。最大的合

8基本資料型別---列表

1、建立 #方法一 L1 = [] #定義空列表 L2 = ['a','b','c','d'] #存4個值,索引為0-3 L3 = ['abc',['def','ghi']] #巢狀列表 #方法二 L4 = list()    2、查詢 >>> L2 = ['a'

10基本資料型別---字典

字典的定義與特性 字典是Python語言中唯一的對映型別。 定義:{key1:value1,key2:value2} 1、鍵與值用冒號“:”分開; 2、項與項用逗號“,”分開; 特性: 1.key-value結構 2.key必須可hash、且必須為不可變資料型別、必須唯一 3.可存放任意多個值、可

JAVA基本資料型別引用資料型別-引數傳遞詳解

1:基本型別的引數傳值 對於基本資料型別,修改這個值並不會影響作為引數傳進來的那個變數,因為你修改的是方法的區域性變數,是一個副本。實參的精度級別應等於或低於形參的精度級別,否則報錯。 class JB{ void f(int x, int y){ x=x+1;

JDBC資料型別Java資料型別標準sql型別

本概述是從《JDBCTM Database Access from JavaTM: A Tutorial and Annotated Reference》這本書中摘引來的。JavaSoft 目前正在準備這本書。這本書是一本教程,同時也是 JDBC 的重要參考手冊,它將作為 Java 系列的組成部份,

例題SQL語句詳解-資料庫基本操作6-資料型別拓展

1.3 資料型別——列舉(enum) 1、從集合中選擇一個數據(單選) mysql> create table t8( -> name varchar(20), -> sex enum('男','女','保密')

區域性變數基本資料型別與表示式

變數 變數   ------>   一塊記憶體的代號,每一個變數對應一塊記憶體                                      記憶體有多大