PB中,怎样将数据库中的图片存到电脑的指定文件夹?

PB中,怎样将数据库中的图片存到电脑的指定文件夹?,第1张

integer li_FileNum

blob emp_id_pic

SELECTBLOB salary_hist

INTO : emp_id_pic

FROM Employee

WHERE Employee.Emp_Num = 100

USING Emp_tran

li_FileNum = FileOpen( "C:\EMPLOYEE\EMP_PICS.BMP", StreamMode!, Write!, Shared!,Replace!)

FileWrite(li_FileNum, emp_id_pic)

这是pb帮助文件中的例程 从数据库Employee表读取编号为100的图片 保存到"C:\EMPLOYEE\EMP_PICS.BMP"

有两方法,1是图片保存在服务器的共享文件夹里,数据库保存图片的路径

2是直接把图片当成大二进制文件保存进数据库,以下是例子:

//取图号

string ls_id

ls_id = this.GetItemString(row,'id')

//选择文件

string pname, fname

value = GetFileOpenName("请选择图片",pname, fname,'jpg', +'Jpg 文件(*.jpg),*.jpg,所有文件(*.*),*.*')

IF value <>1 THEN return

//显示文件

dw_1.object.p_1.filename = fname

SetPointer( HOURGLASS! )

SQLCA.AutoCommit = True

//测定文件长度

long ll_len

ll_len = FileLength(pname)

//打开文件

integer fileno

fileno = FileOpen(pname,StreamMode!,READ!,LOCKREAD!)//读文件

blob lb_file ,lb_fn

int li_ii,ii

li_ii = ceiling(ll_len/32765)

for ii = 1 to li_ii

FileRead (fileno, lb_fn)

lb_file = lb_file + lb_fn

next//文件存入数据库

updateblob sysman set pict = :lb_file where id = :ls_id

if SQLCA.SQLNRows >0 then

MessageBox('提示信息','此图片以成功存入数据库!')

end if

fileclose(fileno)

SQLCA.AutoCommit = False

我不太清楚你这个是什么东西,但是可以告诉你几个可能出现你这种情况的原因

储存图片的变量太小,无法储存全部的图像信息

FileWrite以后没有关闭文件输入输出流就结束了程序,也有可能导致数据不完全


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9924590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存