Blob資料型別的使用

2021-04-13 01:27:44 字數 1327 閱讀 4692

blob資料型別的使用:  

blob   bl_var     //   定義乙個初始大小為200位元組blob  

blob   bl_var     //   普通定義方法,零長度blob  

bl_var   =   blob(space(200))     //   動態分配200個位元組,實際上是分配了乙個200字元的字串,全部為空格(ascii碼20h),最後轉換為blob。也就是開闢了乙個200位元組的記憶體區,內容都是20h,而不是00h。全部初始化為全零的變通方法:(dx有更直接方法嗎?)  

blob   bl_var  

bl_var   =   blob(space(200))  

for   i   =   1   to   len(bl_var)  

blobedit(bl_var,   i,   char(0))  

next  

//   blobedit()用於修改乙個blob變數指定位置的值,修改值可以是任何型別**換到blob位元組)。  

但是有個奇特的地方,pb會把char看作string,當寫入了乙個非零的字元(char)時,字串以零字元結束,因此實際上修改了blob變數的兩個位元組(乙個是字元本身,乙個是零位元組),解決方法是blob(some_char),因為用blob來轉換字串時,只有有效字元被轉換,結尾的零字元會被忽略。而blob(char(0))將會返回乙個空值,因為pb把char(0)作為零長度的字串處理。  

當修改值超出blob變數的範圍時,該次修改將不起作用!  

//   對blob變數作逐字節處理的方法:  

//   bl_source已經初始化,i是要處理的位元組位置  

blob   bl_byte     //   宣告單位元組長度的blob  

int   li_byte  

bl_byte   =   blobmid   (bl_source,   i,   1)     //   extract   a   byte  

li_byte   =   asc(string(bl_byte))     //   轉換到整型  

...   //   對li_byte的值作任意處理,處於0-255單位元組取值範圍內  

//   位元組內容處理後再放回去  

if   li_byte   =   0   then  

blobedit(bl_source,   i,   char(0))     //   寫入00h  

else  

blobedit(bl_source,   i,   blob(char(li_byte)))  

end   if  

blob資料型別 mysql資料型別

mysql資料型別,資料型別介紹 資料型別設定 列屬性 資料型別的字符集用法 選擇適當的資料型別2 資料型別介紹 四種主要類別 數值型別 字元型別 時間型別 二進位制型別 資料型別的 abc 要素 brief 簡潔 complete 完整 例 1 列宣告 create table people id...

定義blob型別 MySQL 資料型別

mysql 支援的資料型別很多,選用正確的資料型別至關重要。下面介紹常用的資料型別以及相應的優缺點。以上資料型別有可選的unsigned 屬性,表示不允許出現負值,但可以使上限提高一倍.例如 smallint unsigned 可儲存範圍為 0 65535 而 smallint 為 32768 32...

MySQL資料型別 BLOB和TEXT

blob binary large object 是用來儲存二進位製大資料型別的。根據儲存長度的不同,text型別和blob型別都可細分為4種型別 tinyblob 最大長度為255 2 8 1 位元組的blob列。tinytext 最大長度為255 2 8 1 字元的text列。blob m 最大...