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 最大...