- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用VB6.0存取SQL Server2000数据库中图像数据方法
用VB6.0存取SQL Server2000数据库中图像数据方法
摘要:利用VB6.0中的ADO Field对象提供的AppendChunk方法和GetChunk方法,实现对SQL Server 2000数据库中图像数据的存取方法。
关键词:VB6.0;SQL Server 2000;图像存取
一、SQL Server 2000中图像数据的存储机制
在SQLServer中,对于小于8000个字节的图像数据可以用二进制数据类型(binary、varbinary)表示。但通常要保存的一些图片都会大于8000个字节。SQL Serve提供了一种机制,能存储每行大到2G的二进制大对象(BLOB),这类对象可包括image、text和ntext三种数据类型,通常是文档 (.txt或.doc)和图片(.jif、.bmp、jpeg等),它可以存储在数据库中。
二、VB 6.0对SQL Server 2000中图像数据的存取方法
VB6.0中的ADO Field对象提供了AppendChunk方法和GetChunk方法来存取BLOB数据。Field对象的第一个AppendChunk方法调用将数据写入字段,覆盖所有现有的数据,随后的AppendChunk方法调用则添加到现有数据。GetChunk方法调用返回的数据将赋给变量,如果其长度大于剩余的数据,则GetChunk仅返回剩余的数据;如果字段为空,则GetChunk方法返回Null。每个后续的GetChunk调用将检索从前一次GetChunk调用停止处开始的数据。但是,如果从一个字段检索数据然后在当前记录中设置或读取另一个字段的值,ADO将认为已从第一个字段中检索出数据。如果在第一个字段上再次调用GetChunk方法,ADO将把调用解释为新的GetChunk操作并从记录的起始处开始读取。
(一)实现的思路
通常采用文件操作的方法。写入图像数据时,先打开指定的图像文件,分段读取文件中的内容,再使用AppendChunk方法把读取的数据写入到指定的image 字段中;显示图像时,先使用GetChunk方法分段地从image 字段中读取图像数据赋给变量,然后依次写入到一个临时文件中,再显示临时文件的内容到窗体即可。将图像数据的写入和图像数据的读取分别定义成两个子过程,以备调用。
(二)实现的方法
为了说明问题,这里以“图片存取(编号,姓名,照片)”表为例来说明VB6.0对SQL Server 2000中登记照片的存取方法。
1、在SQL Server 2000的企业管理器中(也可在查询分析器中用CREATE DATABASE语句)新建数据库,名称为:lxr。
2、在lxr数据库中新建表,名称为:图片存取,其结构如下表。
既可在企业管理器中创建表,也可在查询分析器中用CREATE TABLE语句创建表。
3、创建ODBC数据源
为了能在VB6.0应用程序中访问SQL Server 数据库的数据,在访问之前必须建立VB与SQL Server数据库的连接,建立连接的方法有多种,如:OLE DB、ODBC等。这里为了建立VB与lxr数据库的连接,用操作系统的控制面板中的管理工具建立ODBC数据源,步骤略。
4、在VB中设计界面,如图1所示:
5、主要代码设计(这里只写出过程代码)
‘用户定义存储图像数据的过程:savepicturetodb
Sub savepicturetodb(diskfile As String,bh As String)
Dim bytedata() As Byte 定义数据块数组
Dim numblocks As Long定义数据块个数
Dim filelength As Long 标识文件长度
Dim leftover As Long定义剩余字节长度
Dim filenumber As Long定义自由文件号
Dim i As Long定义循环控制变量
Const blocksize = 4096定义块长度为4KB
Dim cnn As ADODB.Connection
Dim adorst As New ADODB.Recordset ADODB Recordset对象
Dim fild As ADODB.Field ADODB Field对象
Set cnn = New ADODB.Connection
connectstring = filedsn=lxr.dsn;uid=sa;pwd=
cnn.Open connectstring
adorst.Open 图片存取,
您可能关注的文档
最近下载
- 三生三世(C调吉他弹唱谱,张杰)吉他曲谱吉他弹奏吉他图谱.pdf VIP
- 学法大视野数学七年级上册(湘教版)答案.pdf VIP
- 马克思主义政治经济学概论(第二版)第六章.ppt VIP
- 南京天安锅炉安装有限公司锅炉安装通用工艺文件.doc VIP
- 寺院财务制度管理制度.docx VIP
- 超星尔雅学习通《智驭未来AI工具辅助高效学习与科研(天津师范大学)》2025章节测试附答案 .docx VIP
- 24J331 地沟及盖板建筑图集.docx VIP
- Unit 3 English around the World Topic 1 Section C 课件 (共25张PPT)英语仁爱版九年级上册(含音频+视频).pptx VIP
- 青春期身体变化.ppt VIP
- 先锋520K使用说明书.pdf
文档评论(0)