科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VB实现文件数据对SQL Server上传下载

VB实现文件数据对SQL Server上传下载

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文中论述了用VB编程实现文件数据对SQL Server数据库的上传和下载操作的关键技术

作者:刘兴权 陈奇 谢树春 来源:计算机信息技术 2007年10月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
数据的上传

  数据的上传就是将档案文件存储到数据表中。在数据上传时,因情况不同一般有两种方式,即单一上传和批量上传,前者指一次上传一个文件(在数据表中增加一条记录),后者指一次将一个文件夹中的所有文件上传到数据库。两者在实质上是统一的,批量上传时,只需用一个循环语句就可。以下介绍单一上传的过程。

  1、打开数据表

  通过以下语句打开数据表:

dim office_rst As New ADODB.Recordset
adocon.CursorLocation = adUseClient
office_rst.Open "office", adocon, adOpenDynamic, adLockOptimistic, adCmdTable

  2、添加新记录并上传文件

  假定通过一些操作已经获得了要上传的文件路径和名称(例如,可利用CommomDialog控件获得),保存在string型变量filePath中。上传的关键语句如下:

dim adofld As ADODB.Field, DataArr() As Byte, filelen As Long, file_num As Long
office_rst.AddNew
Set adofld = office_rst("office")
adorst("filename").Value = filePath
file_num = FreeFile '返回一个 Integer,代表下一个可供Open语句使用的文件号
Open filePath For Binary Access Read As file_num '打开磁盘文件
filelen = LOF(file_num) '求文件长度
ReDim DataArr(filelen) '根据文件长度定义动态数组大小
Get sourcefile, , DataArr '将一个已打开的磁盘文件读入数组变量之中
adofld.AppendChunk DataArr() '将数组内容存入image型字段中
Close file_num '关闭磁盘文件
adorst.update

  其中的filename为表office中的一个string型字段,用于存储档案文件的名称。

  数据的下载

  在完成数据库连接后不仅可以对数据库进行文件上传的操作,还可以很方便的进行下载(浏览)。通过Web Browser控件可浏览各种类型的文件。

  1、WebBrowser控件

  WebBrowser控件使应用程序增加了浏览功能,利用它可浏览常见的一些文件格式,如Office、CAD、BMP、JEG等。包含了WebBrowser控件的应用程序不仅可以对本机上的文件,还可以对局域网甚至世界网络范围内的文件进行浏览。

  WebBrowse控件有很多方法,但这里只用到了"Navigate"方法,Navigate方法就是通过一个文件的全路径去访问这个文件,具体用法为:
WebBrowOff.Navigate URL

  其中WebBrowOff 是一个WebBrowser控件,URL是必需的string型参数,它可以是表示在Internet的WWW服务程序上用于指定信息位置的字符串,也可以是一个全路径或者是对要浏览的文件通过通用命名标准命名的位置和名称。

  2、文件数据的下载

  在程序中可利用DataList控件列出数据库中保存的文件的名称,下载的思路为:首先定位要下载的文件所在的记录;然后将文件的内容赋给一个数组,并写入一个二进制文件;最后将该文件路径、文件名传给WebBrowser控件。

  关键代码如下所示:

dim FileArr () As Byte, current as string
filelen = office_rst.Fields("office").ActualSize '得到office字段中的文件数据的大小
ReDim FileArr(filelen)
FileArr() = office_rst.Fields("office").GetChunk(filelen) '将字段中数据写入动态数组中
bufferfile = FreeFile
Open "tempfile" For Binary Access Read Write As bufferfile '打开一个临时文件
Put bufferfile, ,FileArr '将动态数组FileArr中的数据写入临时文件tempfile中
current = CurDir & "\tempfile" '获取临时文件的全路径
WebBrowOff.Navigate current '在WebBrowser控件中显示文件内容

  以上代码中未定义的变量与前述相同。

  结束语

  现在很多单位档案资料数据类型繁多,有OFFICE文档、纯文本、图片资料以及包含基础地形图、现状专题图、规划设计成果图等多种图件的AUTOCAD文件,并且数据量巨大,文件数目极多,利用本文介绍的方法可以方便的对数据库各种数据进行查看、上传、下载操作,方便了有大量档案资料的单位对资料的管理。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章