| 网站首页 | 新闻 | 新书 | 专家 | 技巧 | 源码作品 | 工具/资源 | 商城 | 风采 | 留言 | 论坛 | 网址 | 承接 | 
您现在的位置: Access/Office中国 >> 技巧 >> Access >> API >> 文章正文 用户登录 新用户注册
把EXE文件存入到表的字段中,再从表中读出存到硬盘中的代码         ★★★
把EXE文件存入到表的字段中,再从表中读出存到硬盘中的代码
作者:Roadbeg『… 文章来源:Access中国/Office中国 点击数: 本日:{$DayHits} 更新时间:2004-11-23 18:35:14

'假定表:tbl1,字段:F1

Option Compare Database
Option Explicit


Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Function ReadFile(ByVal strFile As String) As Boolean
    On Error GoTo Doerr
    Dim lngFileNum As Long
    Dim varFile As Variant
    Dim rst As New ADODB.Recordset
    Dim strSql As String
    Dim str As String
    Dim lngLen As Long
    Dim bytFile() As Byte
    Dim lngI As Long, lngMax As Long

    lngFileNum = FreeFile
    Open strFile For Binary As lngFileNum

    lngLen = LOF(lngFileNum) / 2
    ReDim bytFile(lngLen * 2)
    Do Until EOF(lngFileNum)
        Get lngFileNum, , bytFile(lngI)
        lngI = lngI + 1
    Loop
    lngMax = lngI
    str = Space(lngLen)
    CopyMemory ByVal StrPtr(str), bytFile(0), lngLen * 2

    strSql = "tbl1"
    rst.Open strSql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTable

    If rst.EOF Then rst.AddNew
    rst.Fields(0).AppendChunk str
    Debug.Print rst.Fields(0).ActualSize
    rst.Update

    rst.Close
    Close lngFileNum

Complete:
    GoTo Quit
Doerr:
Errexit:
    Debug.Print Err.Description
Quit:
End Function
Public Function writeFile(ByVal strFile As String) As Boolean
    On Error GoTo Doerr
    Dim lngFileNum As Long
    Dim rst As New ADODB.Recordset
    Dim strSql As String
    Dim str As String
    Dim lngLen As Long
    Dim bytFile() As Byte
    Dim lngI As Long

    Set rst = New ADODB.Recordset
    strSql = "tbl1"
    rst.Open strSql, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdTable

    lngLen = rst.Fields(0).ActualSize / 2
    str = rst.Fields(0).GetChunk(lngLen * 2)
    ReDim bytFile(lngLen * 2)

    rst.Close

    CopyMemory bytFile(0), ByVal StrPtr(str), lngLen * 2
    lngFileNum = FreeFile
    Open strFile For Binary As lngFileNum
    For lngI = 0 To lngLen * 2
        Put lngFileNum, , bytFile(lngI)
    Next
    Close lngFileNum

Complete:
    GoTo Quit
Doerr:
Errexit:
    Debug.Print Err.Description
Quit:
End Function


文章录入:huanghai    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    如何使用ADO或DAO获取字
    如何得到表的所有键、键
    将邮件中的附件保存至硬
    表名或者字段名是变量的
    用ADO列出某个表的所有字
    如何用代码设置表中字段
    如何设置表的字段默认值
    如何更改表的某一个字段
    最简单的办法判断表最多
    返回存储过程OUTPUT参复
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)