vb向資料庫中讀取單個圖片檔案
vb中 圖片檔案和聲音檔案不能直接寫入資料庫,需要將其轉化成二進位制檔案,怎麼轉化成二進位制檔案呢?這裡就用到了ADODB的Stream物件,這個物件與RecordSet物件有許多類似之處(比如都可以作為一個臨時容器盛放資料,但Stream物件盛放的是二進位制格式的);二者之間也有非常密切的關係(RecordSet物件許藉助Stream物件寫入二進位制格式的檔案)。當然直接將大量的圖片和聲音這種比較龐大的資料放入資料庫會大大影響執行速率,但在初學階段做一嘗試也是很有意思的。下面就是一些簡單的程式碼,實現對於指定的圖片檔案向資料庫中新增、讀取、刪除的操作。
'此函式實現儲存檔案到資料庫中。分兩步完成,
'第一步:先載入指定圖片檔案以二進位制的形式存到Stream物件中;
'第二步:將Stream中的二進位制資料寫到資料庫的一個表中。
'這裡的Stream物件起到了一個轉化和快取的作用
Sub s_SaveFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConcstr As String
'例項化Stream物件
Set iStm = New ADODB.Stream
'讀取檔案到內容
With iStm
'設定資料流為:二進位制模式
.Type = adTypeBinary
'開啟Stream物件
.Open
'向Stream物件中載入圖片
.LoadFromFile App.Path + "\黎敏.jpg "
End With
'將Stream物件中的資料寫入image表的photo欄位
Set iRe = New ADODB.Recordset
Dim SQL As String
Dim MsgText As String
SQL = "select * from image"
Set iRe = ExecuteSQL(SQL, MsgText)
With iRe
'新增一條記錄
.AddNew
'將Stream物件中的資料寫入image表的photo欄位
.Fields("photo") = iStm.Read
.Update
End With
'完成後關閉物件
iRe.Close
'資料流物件也要有相關的處理
iStm.Close
End Sub
'將資料庫中的二進位制形式的圖片檔案讀出,分三步完成
'第一步:將資料庫中的檔案讀取到Stream物件中
'第二步:將Stream物件中的圖片檔案讀到一個臨時檔案中
'第三步:將臨時檔案中的圖片檔案載入到圖片控制元件中
'在操作的時候應注意,Stream跟Recordset物件類似,
'都可以儲存一定的臨時檔案,相當於一個臨時容器,
'當操作完畢的時候應及時清空,或者關閉
Sub s_ReadFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
'開啟表
Set iRe = New ADODB.Recordset
Dim SQL As String
Dim MsgText As String
'臨時檔案,用來儲存讀出的圖片
Dim StrPicTemp
StrPicTemp = "c:\temp.tmp "
SQL = "select top 1 * from image"
Set iRe = ExecuteSQL(SQL, MsgText)
'儲存到檔案,基於資料流
Set iStm = New ADODB.Stream
With iStm
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write iRe("photo")
'將Stream中資料寫入臨時檔案中
.SaveToFile StrPicTemp, adSaveCreateOverWrite
End With
iRe.Close
iStm.Close
'從臨時檔案中獲取圖片檔案
Image1.Picture = LoadPicture(StrPicTemp)
End Sub
Private Sub cmdDelete_Click()
Dim SQL As String
Dim MsgText As String
Dim iRe As ADODB.Recordset
'注意這裡的iRe記錄集不用關閉,
'因為delete語句執行完之後已經自動關閉物件,
'否則會提示關閉物件時不允許操作的錯誤
SQL = "delete image"
Set iRe = ExecuteSQL(SQL, MsgText)
End Sub
Private Sub cmdRead_Click()
Call s_ReadFile
End Sub
Private Sub cmdSave_Click()
Call s_SaveFile
End Sub
相關文章
- 用VB6讀寫資料庫中的圖片 (轉)資料庫
- 使用Hibernate和Struts向資料庫中儲存、讀取並顯示圖片資料庫
- vb.net 存取資料庫中的圖片 (轉)資料庫
- c# 圖片檔案讀取C#
- 03 #### 讀取靜態檔案-圖片
- VB讀取文字檔案的例子:逐行讀取
- EasyExcel庫來讀取指定Excel檔案中的資料Excel
- 使用openpyxl庫讀取Excel檔案資料Excel
- android直接讀取資料庫檔案Android資料庫
- Hibernate 讀取檔案到資料庫的一個bug資料庫
- java+pgsql實現儲存圖片到資料庫,以及讀取資料庫儲存的圖片JavaSQL資料庫
- Java讀取properties檔案連線資料庫Java資料庫
- VB程式設計獲取檔案中整合的圖示程式設計
- 讀取資料夾檔案
- phpSpreadsheet 讀取圖片並另存為檔案PHP
- FileReader()讀取檔案、圖片上傳預覽
- (IOS)根據bundle中的檔名讀取圖片iOS
- 在讀取資料時拼接圖片域名
- 如何限制從資料庫中讀出圖片的大小資料庫
- 簡單讀取XML檔案中的值XML
- 使用yaml檔案讀取資料YAML
- jquery簡單ajax示例_讀取json檔案資料jQueryJSON
- 如何用Python讀取xml檔案後,裁剪標註圖片和擴容資料PythonXML
- 瀏覽資料夾中的圖片(用VB實現) (轉)
- HDFS讀檔案過程分析:讀取檔案的Block資料BloC
- 說說在 Python 中,如何讀取檔案中的資料Python
- [Android]反射讀取drawable中圖片Android反射
- 讀取本地圖片地圖
- python中按照資料夾中檔案的排列順序讀取檔案內容Python
- 使用scala編寫wordcount程式--從多個檔案中讀取計算,最終存入MySQL資料庫MySql資料庫
- SQL Server中讀取XML檔案的簡單做法SQLServerXML
- VB讀寫ini檔案 (轉)
- C# 讀取Word文字框中的文字、圖片和表格(附VB.NET程式碼)C#
- js讀取excel檔案,繪製echarts圖形---資料處理JSExcelEcharts
- phpSpreadsheet Artisan command 讀取圖片並另存為檔案PHP
- java中讀取配置檔案Java
- python中xlrd庫如何實現檔案讀取?Python
- 快取依賴(檔案、資料庫)快取資料庫