📄 数据库中存图片文件.htm
字号:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>
<body>
<h1 align="center">在sql server2000中进行图片文件的存取</h1>
<p align="left"><font color="#0000FF">首先,要求数据库中的表中有一个字段,其类型为
image ,length=16(存取图片文件的大小为2的16次方),允许该字段为空。</font></p>
<p align="left"><font color="#0000FF">其次,书写从表中读取图片的代码:</font></p>
<p align="left"> blob lb_image<br>
integer int_no<br>
setnull(lb_image)<br>
<br>
SELECTBLOB image<br>
INTO :lb_image<br>
FROM image<br>
WHERE name = "aa" ;<br>
if isnull(lb_image)=false then<br>
p_1.SetPicture(lb_image)<br>
end if<br>
</p>
<p align="left"><font color="#0000FF">再次,书写选取图片文件保存到数据库中</font></p>
<p align="left"><br>
integer li_file,li_ret,loops,i,int_no<br>
string ls_file,ls_path<br>
blob lb_small,lb_image<br>
long flen,bytes_read,new_pos <br>
<br>
li_ret = getfileopenname("选择图片文件",ls_path,ls_file, &<br>
"BMP","图片文件(*.BMP),*.BMP,照片文件(*.jpg),*.jpg,照片文件(*.jpeg),*.jpeg,动画(*.gif),*.gif,Windows图元文件(*.WMF),*.WMF,run-length encoded(*.RLE),*.RLE")<br>
if li_ret = 1 then<br>
//以上代码找到需要存入数据库的文件<br>
<br>
//以下代码将该图片文件存入blob变量,因一次只能读32765k,故需用循环<br>
setnull(lb_image)<br>
if li_file <> -1 then <br>
flen = filelength(ls_file)<br>
li_file = fileopen(ls_path,streammode!,read!,lockread!)<br>
if flen > 32765 then<br>
if mod(flen,32765)=0 then<br>
loops = flen/32765<br>
else<br>
<br>
<br>
loops = (flen/32765) + 1<br>
end if<br>
else<br>
loops = 1<br>
end if<br>
new_pos = 1<br>
for i = 1 to loops<br>
bytes_read = fileread(li_file,lb_small)<br>
if i = 1 then<br>
lb_image = lb_small<br>
else<br>
lb_image = lb_image + lb_small<br>
end if<br>
next<br>
fileclose(li_file)<br>
end if<br>
end if<br>
<br>
<br>
if ls_file<>"" then<br>
p_1.picturename=ls_file<br>
end if<br>
<br>
SQLCA.AutoCommit = true<br>
UPDATEBLOB image SET image = :lb_image where name='fan' using sqlca;<br>
IF sqlca.SQLNRows > 0 THEN<br>
messagebox('','ok')<br>
else<br>
rollback;<br>
messagebox('','err')<br>
END IF<br>
SQLCA.AutoCommit = false<br>
return<br>
</p>
<p align="left"> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -