电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 网页制作-> FrontPages教程
用vb6读写数据库中的图片_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
1,以人名和相关图片为例说明,数据库为Access,有如下字段:Namechar,pictureOLEobject,FileLength
Number。当为mssql时,将picture改为lob即可。
2,示例包含control:commomdialog,picture,listbox。
源码如下:
OptionExplicit

PrivateDeclareFunctionGetTempFileNameLib"kernel32"Alias"GetTempFileNameA"(ByVallpszPathAsString,ByVallpPrefixStringAsString,ByValwUniqueAsLong,ByVallpTempFileNameAsString)AsLong
PrivateDeclareFunctionGetTempPathLib"kernel32"Alias"GetTempPathA"(ByValnBufferLengthAsLong,ByVallpBufferAsString)AsLong
PrivateConstMAX_PATH=260

Privatem_DBConnAsADODB.Connection

PrivateConstBLOCK_SIZE=10000
注释:Returnatemporaryfilename.
PrivateFunctionTemporaryFileName()AsString
Dimtemp_pathAsString
Dimtemp_fileAsString
DimlengthAsLong

注释:Getthetemporaryfilepath.
temp_path=Space$(MAX_PATH)
length=GetTempPath(MAX_PATH,temp_path)
temp_path=Left$(temp_path,length)

注释:Getthefilename.
temp_file=Space$(MAX_PATH)
GetTempFileNametemp_path,"per",0,temp_file
TemporaryFileName=Left$(temp_file,InStr(temp_file,Chr$(0))-1)
EndFunction
PrivateSubForm_Load()
Dimdb_fileAsString
DimrsAsADODB.Recordset

注释:Getthedatabasefilename.
db_file=App.Path
IfRight$(db_file,1)<>"\"Thendb_file=db_file&"\"
db_file=db_file&"dbpict.mdb"

注释:Openthedatabaseconnection.
Setm_DBConn=NewADODB.Connection
m_DBConn.Open_
"Provider=Microsoft.Jet.OLEDB.4.0;"&_
"DataSource="&db_file&";"&_
"PersistSecurityInfo=False"

注释:Getthelistofpeople.
Setrs=m_DBConn.Execute("SELECTNameFROMPeopleORDERBYName",,adCmdText)
DoWhileNotrs.EOF
lstPeople.AddItemrs!Name
rs.MoveNext
Loop

rs.Close
Setrs=Nothing
EndSub
PrivateSubForm_Resize()
lstPeople.Height=ScaleHeight
EndSub


注释:Displaytheclickedperson.
PrivateSublstPeople_Click()
DimrsAsADODB.Recordset
Dimbytes()AsByte
Dimfile_nameAsString
Dimfile_numAsInteger
Dimfile_lengthAsLong
Dimnum_blocksAsLong
Dimleft_overAsLong
Dimblock_numAsLong
DimhgtAsSingle

picPerson.Visible=False
Screen.MousePointer=vbHourglass
DoEvents

注释:Gettherecord.
Setrs=m_DBConn.Execute("SELECT*FROMPeopleWHEREName=注释:"&_
lstPeople.Text&"注释:",,adCmdText)
Ifrs.EOFThenExitSub

注释:Getatemporaryfilename.
file_name=TemporaryFileName()

注释:Openthefile.
file_num=FreeFile
Openfile_nameForBinaryAs#file_num

注释:Copythedataintothefile.
file_length=rs!FileLength
num_blocks=file_length/BLOCK_SIZE
left_over=file_lengthModBLOCK_SIZE

Forblock_num=1Tonum_blocks
bytes()=rs!Picture.GetChunk(BLOCK_SIZE)
Put#file_num,,bytes()
Nextblock_num

Ifleft_over>0Then
bytes()=rs!Picture.GetChunk(left_over)
Put#file_num,,bytes()
EndIf

Close#file_num

注释:Displaythepicturefile.
picPerson.Picture=LoadPicture(file_name)
picPerson.Visible=True

Width=picPerson.Left picPerson.Width Width-ScaleWidth
hgt=picPerson.Top picPerson.Height Height-ScaleHeight
Ifhgt<1440Thenhgt=1440
Height=hgt

Killfile_name
Screen.MousePointer=vbDefault
EndSub

PrivateSubmnuRecordAdd_Click()
DimrsAsADODB.Recordset
Dimperson_nameAsString
Dimfile_numAsString
Dimfile_lengthAsString
Dimbytes()AsByte
Dimnum_blocksAsLong
Dimleft_overAsLong
Dimblock_numAsLong

person_name=InputBox("Name")
IfLen(person_name)=0ThenExitSub

dlgPicture.Flags=_
cdlOFNFileMustExistOr_
cdlOFNHideReadOnlyOr_
cdlOFNExplorer
dlgPicture.CancelError=True
dlgPicture.Filter="GraphicsFiles|*.bmp;*.ico;*.jpg;*.gif"

OnErrorResumeNext
dlgPicture.ShowOpen
IfErr.Number=cdlCancelThen
ExitSub
ElseIfErr.Number<>0Then
MsgBox"Error"&Format$(Err.Number)&_
"selectingfile."&vbCrLf&Err.Description
ExitSub
EndIf

注释:Openthepicturefile.
file_num=FreeFile
OpendlgPicture.FileNameForBinaryAccessReadAs#file_num

file_length=LOF(file_num)
Iffile_length>0Then
num_blocks=file_length/BLOCK_SIZE
left_over=file_lengthModBLOCK_SIZE

Setrs=NewADODB.Recordset
rs.CursorType=adOpenKeyset
rs.LockType=adLockOptimistic
rs.Open"SelectName,Picture,FileLengthFROMPeople",m_DBConn

rs.AddNew
rs!Name=person_name
rs!FileLength=file_length

ReDimbytes(BLOCK_SIZE)
Forblock_num=1Tonum_blocks
Get#file_num,,bytes()
rs!Picture.AppendChunkbytes()
Nextblock_num

Ifleft_over>0Then
ReDimbytes(left_over)
Get#file_num,,bytes()
rs!Picture.AppendChunkbytes()
EndIf

rs.Update
Close#file_num

lstPeople.AddItemperson_name
lstPeople.Text=person_name
EndIf
EndSub->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·frontpage2002高效使用的技巧_frontpages教程
·用vb编写windowscgi应用程序_visualbasic教程
·frontpage2000值得学习的10个操作技巧(下)_frontpages教程
·轻松制作自己的信息反馈web页_frontpages教程
·用frontpage 2000做样式表_frontpages教程
·网上电影发布步步进_frontpages教程
·frontpage2000实务高级网站管理_frontpages教程
·精彩新思路:frontpage xp玩特效_frontpages教程
·认识frontpage 2002扩充插件之七_frontpages教程
·获得、设置鼠标双击间隔_visualbasic教程

最新文章
·用frontpage手把手教你制作网上电影的发布_frontpages教程
·在xp中如何使用windows vista屏保_windows xp
·vb.net实现窗体图标最小化到状态栏_vb/vb.net教程
·用photoshop消除照片中的杂色条纹_photoshop教程
·photoshop照片处理:纠正倾斜照片_photoshop教程
·photoshop实例提高:魔幻特效制作实录_photoshop教程
·windows xp系统还原点丢失怎么办?_windows xp
·photoshop打造融化的巧克力字_photoshop教程
·用frontpage 2003发布您的网站_frontpages教程
·用frontpage2003轻松制作asp动态网页_frontpages教程


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号