收录日期:2018/11/19 05:26:17 时间:2016/05/13 10:44:37 标签:非技术版
请问如何把图像存进数据库,并用picture控件显示出来.
如果窗口中有一个pictue控件 p_1;从数据库中检索出图像存放在一个Blob变量bb
p_1=bb就行了。
你可以打开图片的文件,然后将该文件存放一个变量中
再用
insertblob into 表
values(:变量);
在数据库中存放图片的字段必须是blob型。

例如:在数据库中有一个叫BLOB_TABLE的表,其中有两个字段分别为:
BLOB_ID INT NOT NULL PRIMARY KEY
BLOB_COL BLOB NULL
在将BLOB写入数据库之前,必须将主键值写入数据库,因此先在表中加入一个新记录,BLOB_ID的值为737,而BLOB_COL设置为NULL,然后执行如下代码:

int filenum,loops,counter
long filelen,bytes_read,new_pos
blob temp_blob,total_blob

setpointer(hourglass!)

//获取文件的长度
filelen = filelength(sle_filename.text)                                 

//指定文件为只读,filenum为该文件的句柄
filenum = fileopen(sle_filename.text,streammode!,read!,lockread!)

if filelen>32765 then 
loops = ((filelen - 1)/32765) + 1 
else
loops = 1
end if

//读文件...
for counter = 1 to loops
bytes_read = fileread(filenum,temp_blob)
total_blob = total_blob + temp_blob
next
fileclose(filenum)

updateblob blob_table set blob_col = :total_blob where blob_id = 737 using sqlca;
if sqlca.sqlcode<>0 then
messageobx('updateblob失败!',sqlca.sqlerrtext)
return
end if

当你想从数据库中取BOLB型数据时,可执行如下代码:
blob lb_blob
selectblob blob_col into :lb_blob from blob_table where blob_id = 737 using sqlca;

setpicture(p_1,lb_blob) //p_1为一PICTURE控件。
32765在这里是什么意思?
是因为fileread 和 filewrite一次只能读/写32765字节的数据,所以要采用分段读写。
fileread()函数不支持读取大于32K的文本
可以将题片的路径和文件名存入数据库, 需要时调用

求active object的精确解释,怎么实现?谢谢! 头10位又有分!哈哈~~~ 紧急求助:我有一命令按钮,希望单击它退出flash播放器,转到一个网页上 ADO远程连接ACCESS数据库中的路径问题 如何在程序中检测到计算机休眠?(在线等,焦急) 谁有好的颜色选择器? 远程控制的东西,刚开始,请有经验的朋友提供一点东西。 本人近期要到北京发展,请给各建议 在asp里面两个字段求商怎么实现呀! 请教高手:如何通过 SCO unix 上网? 大家讨论,有一定浏览量的网站到底用cookie好还是用session好?? EnumWindows 函数的问题! 杂志 =============关于向屏幕输出文本的问题.(waiting...) =============关于向屏幕输出文本的问题.(waiting...) 请问如何在自己的电脑上屏蔽一个网站? 在线等候.... 有没有云南昆明的开发程序的兄弟姐妹?? 关于c++的调用问题! 一个简单的钩子安装问题 如何在程序中检测到拔出网线这一事件?在线等,急 太受伤了! delphi6 与 delphi7 的安装? Dreamweaver MX 中的一个小问题? 在“用马甲来散次分,烧鸟酱要是来了可以多给点分”回贴的朋友进来领分。 IIS在CPU资源占用率100%,求助! 小编译器? 请高手进来看一下~~~~~~~~关于硬盘引导记录的问题 如何在程序中调用打开Outlook Express 查循結果分組! 请问用CFindReplaceDialog类时,怎么取得正确的别国语言原码?急急急!