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

  数据库可以采用微软的Access97或者SQLServer来进行,首先新建一张表,取名为Table,添加三个字段,分别是:姓名Char型(SQLServer中)文本型(Access中);编号Char型(SQLServer中)文本型(Access中);照片image型(SQLServer中)OLE对象(Access中),设计好后存盘。为了可以进行远程调用,我们采用ODBC的方法进行,双击打开控制面板里的ODBC数据源,界面如图1所示:
  点“系统DSN”选项卡,按“添加”按钮选择对应的数据源驱动程序Access的*.mdb或者SQLServer,依照添加向导加添加数据源,下面就可以开始程序的编写了。

  二、程序的编写

  运行VB,新建一个工程。本程序采用ADO控件和动态链接库访问数据库,需要加入ADO的运行库,单击“工程\引用”菜单,出现引用对话框,选择MicrosoftActiveXDataObjects2.0Library并确定。
  添加一个Form,四个Label控件,两个TextBox控件,一个PictureBox控件,一个ADODC控件,三个CommandButton控件,一个CommandDialog控件,如果ADODC和CommandDialog控件没有出现在工具框上,请单击菜单“工程\部件”。点“控件”选项卡,在其中选中MicrosoftADODataControl6.0(OLEDB)和MicrosoftCommonDialogControl6.0两项按“确定”按钮。
  下面是以上各个控件的一些属性:
  Form1.MaxButton=False
  Label1.Caption=姓名:
  Label2.Caption=编号:
  Label3.Name=ResName
  Label3.BackColor=&H80000009&
  Label3.BorderStyle=1-FixedSingle
  Label3.DataField=姓名
  Label3.DataSource=AdoCtr
  Label4.Name=ResNumb
  Label4.BackColor=&H80000009&
  Label4.BorderStyle=1-FixedSingle
  Label4.DataField=编号
  Label4.DataSource=AdoCtr
  Text1.Name=Names
  Text2.Name=Numb
  CommonDialog1.Name=CDlg
  Adodc1.Name=AdoCtr
  CommonButton1.Name=PreView
  CommonButton1.Caption=预览
  CommonButton2.Name=Save
  CommonButton2.Caption=保存
  CommonButton3.Name=Update
  CommonButton3.Caption=更新
  PictureBox1.Name=PicBox
  PictureBox1.AutoSize=False
  PictureBox1.AutoRedraw=False
  PictureBox1.DataField=照片
  PictureBox1.DataSource=AdpCtr
  下面是程序代码:
  ′此工程需有MicrosoftActiveXDataObject2.1Library(msado15.dll)
  DimConstrAsString′ODBC路径
  DimFileNameAsString′图片文件名
  ConstBLOCKSIZE=4096′每次读写块的大小
  DimADOConAsNewADODB.Connection′ADODBConnection对象
  DimADORstAsNewADODB.Recordset′ADODBRecordset对象
  DimADOFldAsADODB.Field′ADODBField对象
------------------------
  PrivateSubSaveToDB(ByRefFldAsADODB.Field,DiskFileAsString)
  DimbyteData()AsByte′定义数据块数组
  DimNumBlocksAsLong′定义数据块个数
  DimFileLengthAsLong′标识文件长度
  DimLeftOverAsLong′定义剩余字节长度
  DimSourceFileAsLong′定义自由文件号
  DimiAsLong′定义循环变量
  SourceFile=FreeFile′提供一个尚未使用的文件号
  OpenDiskFileForBinaryAccessReadAsSourceFile′打开文件
  FileLength=LOF(SourceFile)′得到文件长度
  IfFileLength=0Then′判断文件是否存在
  CloseSourceFile
  MsgBoxDiskFile&″无内容或不存在!″
  Else
  NumBlocks=FileLength\BLOCKSIZE′得到数据块的个数
  LeftOver=FileLengthModBLOCKSIZE′得到剩余字节数
  Fld.Value=Null
  ReDimbyteData(BLOCKSIZE)′重新定义数据块的大小
  Fori=1ToNumBlocks
  GetSourceFile,,byteData()′读到内存块中
  Fld.AppendChunkbyteData()′写入FLD
  Nexti
  ReDimbyteData(LeftOver)′重新定义数据块的大小
  GetSourceFile,,byteData()′读到内存块中
  Fld.AppendChunkbyteData()′写入FLD
  CloseSourceFile′关闭源文件
  EndIf
  EndSub
  ----------------------
  PrivateSubForm_Load()
  Constr=″DSN=image″′定义ODBC连接
  ADOCon.OpenConstr′创建一个连接
  ADORst.Open″table″,ADOCon,adOpenDynamic,adLockOptimistic
  ′打开一个ADO动态集表名为table
  SetAdoCtr.Recordset=ADORst′将动态集赋给ADO控件
  EndSub
  ----------------------
  PrivateSubForm_Unload(CancelAsInteger)
  ′记得关闭打开的数据集,释放资源
  ADORst.Close
  ADOCon.Close
  SetADORst=Nothing
  SetADOCon=Nothing
  EndSub
  ----------------------
  PrivateSubPreView_Click()
  ′显示打开文件的公用对话框,选择需要加入数据库的图片
  CDlg.Filter=″位图(*.bmp)|*.bmp″
  CDlg.ShowOpen
  FileName=CDlg.FileName
  PicBox.Picture=LoadPicture(FileName)′预览图片
  EndSub
  ----------------------
  PrivateSubSave_Click()
  ADORst.AddNew′新增纪录
  ADORst(″姓名″).Value=Names.Text′给动态集的第一个字段赋值
  ADORst(″编号″).Value=Numb.Text′给动态集的第二个字段赋值
  SetADOFld=ADORst(″照片″)′给ADODB.Field对象赋值
  CallSaveToDB(ADOFld,FileName)′调用子程序,给第三个字段(image)赋值
  ADORst.Update
  EndSub
  ----------------------
  PrivateSubUpdate_Click()
  ′重新打开纪录集,刷新纪录
  ADORst.Close
  ADOCon.Close
  SetADORst=Nothing
  SetADOCon=Nothing
  ADOCon.OpenConstr
  ADORst.Open″table″,ADOCon,adOpenDynamic,adLockOptimistic
  SetAdoCtr.Recordset=ADORst
  EndSub
  程序运行后的结果如图2。
  本程序在VB6.0/Windows98/WindowsNT下编译通过。->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·google rank 2_google推广
·google与opera合作 填补手机网络搜索空白_google推广
·google的搜索结果排列算法_google推广
·玩转google搜索技巧_google推广
·面向搜索引擎的网站设计_google推广
·面向搜索引擎的广告模式_google推广
·登陆google的关键:网站外部链接_google推广
·如何使google更快速收录你的新站_google推广
·创建有意义的google排名链接人气度(链接数)_google推广
·针对google关键词广告新质量分数系统进行优化_google推广

最新文章
·google工具条要跟pagerank说再见?_google推广
·google adsense for content新的广告样式_google推广
·google也推出域名注册_google推广
·公布如何判断adsense无效点击的隐忧_google推广
·google性格三:创新的代名词_google推广
·google性格二:google资讯偏爱收录博客内容_google推广
·google性格一:对活跃度高的网页收录很快_google推广
·google的“unavailable_after”标签的详细使用方法_google推广
·google adwords的优化技巧_google推广
·google关键词广告创建的十二招_google推广


 
 


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

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

版权所有 西部数码(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号