Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Вопрос по хранению, отображению рисунков.  [new]
Michael Vasilev
Member

Откуда: Москва
Сообщений: 612
Связка Access 2003 + MS SQL.
Пришлось мне работать с базой, доставшейся в наследство, изучаю хранение картинок, учусь.
Картинки хранятся в поле типа image как OLE объекты, пока что, отображаются в присоединенной рамке объекта. Все работает. Медленно правда.
Изучаю способы другие.
Создаю тестовую таблицу и форму. Файл .jpg
1. Загружаю с помощью Stream в поле в двоичном виде. Все ок.
2. Выгружаю с помощью Stream из таблицы в файл, все без проблем.
Проблемы с отображением.
Присоединенная рамка сохраненный таким образом рисунок не показывает. Он уже не объект OLE.
Как вариант: на форме рамка рисунка (Access стоит русский, называю как есть), выгрузить изображение во временный файл, Picture Property назначить этот рисунок, все показывается. Но не хочется с временными файлами возиться, хочется красивее.
Пробую как прочитал в советах:

Private Sub Form_Current()
IF not isnull(me.PicData) Then
Me.MYPIC.PictureData = me.PicData 'Поле где храниться image
Me.MYPIC.visible = True
Else
Me.MYPIC.visible = False
End IF
End Sub

Выкидывает ошибку: Указанный рисунок не имеет формат DIB.

В чем тут грабли? Поделитесь решением, у кого есть на это время, плиз.
18 ноя 05, 16:49    [2084566]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10938
ошибка в том что бинарное содержимое jpg, gif не имеет формат диб,
что тут еще скажешь?

вариантов несколько:
1 написать конвертер графических форматов в диб
2 использовать loadpicture

я сделал эктив икс на VB 6
18 ноя 05, 16:56    [2084613]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
Michael Vasilev
Member

Откуда: Москва
Сообщений: 612
Еще вопрос в тему, картинки хранятся в базе в поле image как OLE объект, как эти картинки выгрузить в файл?
21 ноя 05, 11:06    [2088917]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
Пользователь2
Guest
Не понятно.

Michael Vasilev
Еще вопрос в тему, картинки хранятся в базе в поле
image как OLE объект, как эти картинки выгрузить в файл?


Michael Vasilev
2. Выгружаю с помощью Stream из таблицы в файл, все без проблем.
21 ноя 05, 11:40    [2089118]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10938
Michael Vasilev
Еще вопрос в тему, картинки хранятся в базе в поле image как OLE объект, как эти картинки выгрузить в файл?


надо форме назначить источником данных таблицу с объектами
поместить на форму контрол связанный оле
назначить контролу данные - имя поля с оле данными
настроить свойства активации контрола (навскидку не помню какие именно, не буду врать)
и выполнить активацию оле

можно все это обернуть циклом по всем записям

других способов, увы, не встречал
21 ноя 05, 11:59    [2089281]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
Michael Vasilev
Member

Откуда: Москва
Сообщений: 612
Объясняю:
1. Для Пользователя2.
Загрузить из файла и выгрузить в файл с помощью Stream нет проблем.
Формат хранения изображения тогда двоичный. Что бы этот двоичный отобразить на форме, приходится выгружать в файл и загружать в форму потом. Других путей не нашел. Если кто знает покрасивей, поделитесь, буду признателен.

2. Есть еще таблица, где изображения хранятся в виде OLE объектов. На форме отображается без проблем, создаешь Связанную рамку объекта, назначаешь поле источником данных, все работает, включая ленточную форму и без циклов. Медленно правда загружается.
Вопрос в том, как эти изображения, хранящиеся в базе в поле image в виде OLE объектов выгрузить в файл на диске?
21 ноя 05, 13:13    [2089816]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
Michael Vasilev
Member

Откуда: Москва
Сообщений: 612
Хм. Никто не занимался схожей темой?
23 ноя 05, 11:27    [2098250]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10938
конечно никто!
ответы читаете?
или вы не читататель а писатель????
23 ноя 05, 12:13    [2098595]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по хранению, отображению рисунков.  [new]
Michael Vasilev
Member

Откуда: Москва
Сообщений: 612
to MsDatabaseru
Спасибо за поднятие топика. Ваши ответы я внимательно прочитал.
В них я не нашел ответов на свои вопросы.
Если
"настроить свойства активации контрола (навскидку не помню какие именно, не буду врать) и выполнить активацию оле
можно все это обернуть циклом по всем записям"

это ответ на вопрос как выгрузить картинки в файл из поле типа image в котором хранятся OLE объекты, то спасибо за него, но хотелось бы увидеть кусочек кода.

Если:
"1 написать конвертер графических форматов в диб
2 использовать loadpicture
я сделал эктив икс на VB 6"

Это ответ на вопрос как выгрузить, загрузить данные хранящиеся не как OLE, а в двоичном виде, то спасибо за него, я спрашивал, не нашел ли кто решения красивей, без выгрузки в файл и загрузки в форму с помощью loadpicture. То, что вы сделали "эктив икс на VB 6" это замечательно, но мне это не поможет, увы.
23 ноя 05, 15:46    [2099905]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить