Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Изображения и БД...! Добавлено: 26.11.07 02:55  

Автор вопроса:  Abriel
Здравствуйте! Интересует такой вопрос: Каким образом преобразовать двоичное (Binary) изображение, находящееся в БД Access (MDB 7.0) и напрямую вставить в ImageBox или в PictureBox без промежуточного сохранения в файл???
(Используя только VB6, DAO и элемент управления Data!)...

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Abriel



Вопросов: 9
Ответов: 12
 Профиль | | #1 Добавлено: 26.11.07 03:12
Пример как сохранить файл в БД и обратно используя только VB6, DAO и элемент управления Data привожу ниже:

'Для сохранения файла с винта в БД:
Data1.Recordset.AddNew
SaveFileToDB("С:\PictureIn.jpg", "Pic";)
Data1.Recordset.Update

'***************************************
Public Function SaveFileToDB(ByVal FileName As String, FieldName As String) As Boolean
Dim iFileNum As Integer
Dim lFileLength As Long
Dim abBytes() As Byte
Dim iCtr As Integer
On Error GoTo ErrorHandler
If Dir(FileName) = "" Then Exit Function
If Not TypeOf Data1.Recordset Is DAO.Recordset Then Exit Function
'Read file to Array
iFileNum = FreeFile
Open FileName For Binary Access Read As #iFileNum
lFileLength = LOF(iFileNum)
ReDim abBytes(lFileLength)
Get #iFileNum, , abBytes()
'Put Array value to DataBase
Data1.Recordset.Fields(FieldName).AppendChunk abBytes()
Close #iFileNum
SaveFileToDB = True
ErrorHandler:
End Function

'Для сохранения файла с БД на винт:
Data1.DatabaseName="C:\TestBase.mdb"
Data1.RecordSource = "PicTest" 'Имя таблицы в БД
Data1.Refresh

LoadFileFromDB("С:\PictureOut.jpg", "Pic";)

'***************************************

Public Function LoadFileFromDB(FileName As String, FieldName As String) As Boolean
Dim iFileNum As Integer
Dim lFileLength As Long
Dim abBytes() As Byte
Dim iCtr As Integer
On Error GoTo ErrorHandler

If Not TypeOf Data1.Recordset Is DAO.Recordset Then Exit Function
iFileNum = FreeFile
Open FileName For Binary As #iFileNum
lFileLength = LenB(Data1.Recordset(FieldName))
abBytes() = Data1.Recordset(FieldName).GetChunk(0, lFileLength)
Put #iFileNum, , abBytes()
Close #iFileNum
LoadFileFromDB = True
ErrorHandler:
End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам