以下是代碼,目前這個代碼是默認保存在C盤,能否有類似讓用戶另存為的代碼。
On Error GoTo handleErr
Dim rs As ADODB.Recordset
Dim mstream As ADODB.Stream
Dim strSql As String
Dim abc As Boolean
Dim bytFile() As Byte
Set rs = New ADODB.Recordset
strSql = "select * from t_accessory where FID=7 "
abc = k3Appcon.ExecuteRs(strSql, rs)
If (abc) Then
If (rs("FData").ActualSize > 1) Then '判斷是否為空
'保存到檔案
bytFile = rs.Fields("FData").Value
Set mstream = New ADODB.Stream
With mstream
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
' .Write rs("FData")
.Write bytFile
.SaveToFile "C:\hj.txt"
End With
'關閉物件
rs.Close
mstream.Close
End If
End If
Exit Sub
handleErr:
MsgBox Err.Description
End Sub
uj5u.com熱心網友回復:
“二進制檔案”用“文本檔案”方式去看,當然看到的會是“亂碼”啊!
你要“另存”,直接用FileCopy不就行了?
Call FileCopy("源檔案路徑", "目標位置路徑")
“檔案路徑”最好是用“全路徑”的方式,免得“當前路徑”不明確,造成找不到源檔案,或者沒復制到想要的地方去……
uj5u.com熱心網友回復:
對電腦而言沒有亂碼,只有二進制位元組;對人腦才有亂碼。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A推薦使用WinHex軟體查看硬碟或檔案或記憶體中的原始位元組內容。
uj5u.com熱心網友回復:
把一個附件放到資料庫欄位中去,不是不行,但是強烈不建議這么做。可以把附件按一定規則存放在檔案目錄結構中,資料庫中僅記錄存放的相對路徑。
減少資料庫的IO消耗,減小資料庫檔案的空間,檔案容易維護,今后資料庫的遷移、換硬碟啥啥啥的都會方便好多。
uj5u.com熱心網友回復:
做了個測驗資料資料庫image欄位值:
0x78DA3334440389B881112600002A0B113300
VB代碼段:
' rsrs("FData")是讀出的Image資料型別欄位
Dim LngFileLen As Long, BytFile() As Byte
LngFileLen = rsrs("FData").ActualSize
If LngFileLen > 0 Then
ReDim BytFile(LngFileLen)
BytFile = rsrs("FData").GetChunk(LngFileLen)
lngFreeFile = FreeFile
Open "c:/a.txt" For Binary Access Write As lngFreeFile
Put lngFreeFile, , BytFile()
Close lngFreeFile
'寫資料成功標志
CreateJZFile = True
MsgBox CreateJZFile
End If
下載的a.txt文本結果:
x趀愝N翤咃Ixa錐衹煫羊#ァb m攧
bZK厳儋]畑3{3g3縑7囃2K?島僡礡瑻颪N噇驥仄<{肨}G|硸SW??髏4蘗I?檦蔣棫n纞'芶F5?B雽諱
泲論_@`?光壪?筿莫嫑€鉈'呧茷
w*帉孿捱吼豒?誺YSOm冃"轠?@Ob0頊0釉?+硠稃k5鈿墠%OFe[Λ?Z
/B%P綏rw攀裬敱T耓??E?Oi?%?i??("脴晨@:
"???o???▔
uj5u.com熱心網友回復:
我重新換個了寫法還是亂碼,能否提供下幫助
uj5u.com熱心網友回復:
你放進資料庫里的到底是什么資料uj5u.com熱心網友回復:
你把你上傳的檔案擴展名改為txt打開看看是什么uj5u.com熱心網友回復:
上傳的txt內容:

資料庫image存盤的結果
0x78DA0165009AFF20312E424F5320BCD3BAC5B5A5B1EDD2BBD0D0B7D6C1BDD0D00D0A0D0A322EC1D0D6AEBCE4B5C4B9D8CFB528CAF4D0D4C0EFCCEDBCD3A1AFCAC2BCFEA1AE290D0A0D0A332E6D697372736F66742064616F20332E3628D5EBB6D4B5F7D3C361636565737329720C3724
下載的txt內容:

測驗資料如果是excel或word就全部是亂碼,圖片就無法打開


uj5u.com熱心網友回復:
excel word 圖片是其他測驗資料,不是txt的內容
uj5u.com熱心網友回復:
你在8樓貼的內容:資料庫image存盤的結果
0x78DA0165009AFF20312E424F5320BCD3BAC5B5A5B1EDD2BBD0D0B7D6C1BDD0D00D0A0D0A322EC1D0D6AEBCE4B5C4B9D8CFB528CAF4D0D4C0EFCCEDBCD3A1AFCAC2BCFEA1AE290D0A0D0A332E6D697372736F66742064616F20332E3628D5EBB6D4B5F7D3C361636565737329720C3724
上面這段“編碼”,紅色部分是“多余的內容”,中間黑色部分就是你的“原文”。
把頭、尾去掉就行了,說不定那兩部分都是“固定長度”的。
uj5u.com熱心網友回復:
所以,最后還是強烈建議你不要在資料庫里面塞檔案。uj5u.com熱心網友回復:
我一直沒使用那些“資料庫”,難道沒有存盤“位元組序列”的欄位型別?
要是放“外部檔案”中,造成“一大堆的小檔案”,我覺得這樣的情況也有點惡心。
并且,放“外部”也有點“不安全”吧,要是手賤把它當成垃圾檔案洗掉了,資料不就丟失了?
uj5u.com熱心網友回復:
說到手賤,還有一種情況是,手賤把資料庫刪了……
如果規劃的是一個大型系統,檔案極多,那么檔案和資料庫是可以分開放在不同的機器山的。互聯網訪問的時候先通過資料庫快速定位到檔案路徑,然后再通過其他鏈路并發的獲取檔案。在檔案獲取期間不占用資料庫IO。
放在外部的檔案可通過增加服務器擴存盤,比如將頻繁處理的檔案放在不同的機器上分散壓力。這時候僅需要對部分檔案進行遷移,然后修改部分資料庫記錄。如果所有東西都放在資料庫里,運行幾年后的系統做遷移很痛苦的。
uj5u.com熱心網友回復:
刪資料庫這種“作死”,那就怨不得別人了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46847.html
標籤:VB基礎類
