另立专贴:to dalianyilan(嘘嘘兔):
to dalianyilan(嘘嘘兔):
不好意思,我没说清楚,让你误会了我的意思,在这另立专贴向大家请教,拿你这段代码来说吧:
Blob lb_pic,lb_write
Long ll_length
Int li_c,li_i,li_fileNum,li_qs,li_len,li_mod
string ls_filename,ll_no
selectblob picture
into :lb_pic //问题在这数据库里该记录这个字段有62300字节,读出来最多只有32766字节
from t_health
where no= :select_no;
ll_length = Len(lb_pic) ///用调试器查年这里的长度为32767字节
IF ll_length<1 THEN RETURN
li_c = ll_length/32765
li_mod = Mod(ll_length,32765)
IF li_mod>0 THEN li_c++
ls_filename = "ggg.jpg"//生成文件
li_FileNum = FileOpen(ls_filename,StreamMode!,write!,lockWrite!,replace!)
FOR li_i=1 to li_c
li_qs = (li_i - 1) * 32765 + 1
IF li_i<li_c THEN
li_len = 32765
ELSE
li_len = li_mod
END IF
lb_write = blobmid(lb_pic,li_qs,li_len)
FileWrite(li_fileNum,lb_write)
NEXT
fileclose(li_filenum)
dw_1.modify("p_1.filename='ggg.jpg'")//指定p_1的filename
问题:用selectblob查询blob字段数据时,当该blob数据长度大于32767时,查询出来的总为32767,多余的被截断了