把EXE文件存入到表的字段中,再从表中读出存到硬盘-黄海
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 技术类


把EXE文件存入到表的字段中,再从表中读出存到硬盘

发表时间:2004/11/16 14:23:50 评论(0) 浏览(5733)  评论 | 加入收藏 | 复制
   
摘 要:把EXE文件存入到ACCESS的表的字段中,再从表中读出存到硬盘
正 文:

'假定表: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


Access软件网交流QQ群(群号:198465573)
 
 相关文章
打开exe文件代码  【钱玉炜  2008/2/2】
能否编译mdb文件到exe文件?  【UMVsoft整理  2008/5/27】
ShellExecute  【umvsoft整理  2008/8/18】
access中打开EXE等可执行文件的代码  【Accessoft整理  2009/10/19】
BAT转EXE应用工具  【江羽  2010/10/20】
打开本文件夹内word\Excel\exe\chm等文档简例  【十段  2011/8/21】
常见问答
技术分类
相关资源
文章搜索
关于作者

黄海

文章分类

文章存档

友情链接