发信人: long007()
整理人: fishy(2000-01-06 16:06:56), 站内信件
|
我的一个例子,你对照看看就知道了。
Const mLNG_CHUNK_SIZE = 1024 * 4
Public Function SaveFileToDB(FileName As String, FileType As String, K eyValue As String, Optional Djrq As Date) As Boolean
Dim strSQL As String
Dim rsDocument As Recordset
Dim strKeyField As String
Dim strDocField As String
Dim lngFileSize As Long
Dim bytChunk() As Byte
Dim intChunks As Integer
Dim lngFragment As Long
Dim i As Integer
Select Case FileType
Case "ZlzsZsda"
strSQL = "select fxgcid,djrq,zsda from ZlzsDocs where fxgcid=' " & KeyValue & "'"
strKeyField = "fxgcid"
strDocField = "zsda"
End Select
On Error GoTo Err_OpenFile
Open FileName For Binary Access Read As 1
On Error GoTo 0
lngFileSize = LOF(1)
If lngFileSize = 0 Then
Close
MsgBox "文件内容为空", , App.Title
SaveFileToDB = False
Exit Function
End If
Set rsDocument = New Recordset
rsDocument.Open strSQL, gcnDocsDB, adOpenKeyset, adLockOptimistic
If rsDocument.RecordCount = 0 Then
rsDocument.AddNew
rsDocument.Fields(strKeyField) = KeyValue
Else
rsDocument.Fields(strDocField) = Null
End If
rsDocument.Fields("djrq") = Djrq
intChunks = lngFileSize \ mLNG_CHUNK_SIZE
lngFragment = lngFileSize Mod mLNG_CHUNK_SIZE
ReDim bytChunk(lngFragment)
Get 1, , bytChunk()
rsDocument.Fields(strDocField).AppendChunk bytChunk()
ReDim bytChunk(mLNG_CHUNK_SIZE)
For i = 1 To intChunks
Get 1, , bytChunk()
rsDocument.Fields(strDocField).AppendChunk bytChunk()
Next
On Error GoTo Err_Update
rsDocument.Update
On Error GoTo 0
rsDocument.Close
Set rsDocument = Nothing
Close
SaveFileToDB = True
Exit Function
Err_OpenFile:
MsgBox Err.Description, , App.Title
SaveFileToDB = False
Exit Function
Err_Update:
rsDocument.CancelUpdate
rsDocument.Close
Set rsDocument = Nothing
Close
MsgBox Err.Description, , App.Title
SaveFileToDB = False
Exit Function
End Function
【 在 ary (阿强驸马) 的大作中提到: 】
: 本人的 VB 的 Image 控件已经有一个图片(该图片不是由文件读入),
: 我希望能够获得该图片的二进制数据,并把这些二进制数据保存入数据库。
:
: 问题是如何获得这些二进制数据?
: .......
-- 我是一只只会爬的小蚂蚁,却想敲开天堂之门!
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.111.48]
|
|