Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отображение картинки из базы Access [D7, access]


mouse_web ©   (2004-07-29 17:47:00) 

Подскажите как отобразить картинку...
Я создал в базе Access таблицу с картинками (поля OLE). Прямым копированием картинок наполнил таблицу.
Для просмотра в форме delphi использую элемент DBImage, но он не хочет показывать... Выдается ошибка "Bitmap image is not valid".
Подскажите, пожалуйста, может другой элемент надо использовать?


sniknik   (2004-07-30 12:37:00) [1]

а разве все бывает досконально известно? ;о)

но вообще правильно, лучше не использовать как серверную базу раз она декларируется как локальная.

кстати ситуация с транзакцией наверное будет аналогична если использовать файрбирд персонал но базу брать с соседней машины по расшареной папке. тоже ведь нехорошо? и даже то что на соседней тоже лежит dll от такой же персональной версии мало чем поможет. ;о)) но зато в случае с сервером это правильно а методов менять не нужно, перецепил конект и все.


Term   (2004-07-30 12:09:00) [2]

из этого следует что лучше его не использывать подобным образом, раз уж все досконально не известно, то могут а скорее и будут проблемы, спасибо за информацию


sniknik   (2004-07-30 11:57:00) [3]

та машина с которой подключаешся, аналогично файл серверу, т.к. это "серверное ядро" будет на той же машине, а не там где база лежит. (вернее там оно тоже будет но незадействованое)

(может конечно эти ядра, на разных машинах, както вяжутся между собой и друг другу "помогают", но мне об этом ничего не известно, и не читал ничего подобного. т.е. это очень "дикое" предположение ;о))


Term   (2004-07-30 11:46:00) [4]


> но принцып работы с ней как с клиент-сервером



> все идет через некое ядро, которое условно можно называть
> сервером

понятно в общем, у меня это больше гипотетический интерес, так как сам в основном FB использую, но мне интересен тогда такой вопрос, на сервере лежит файл с расширением mdb, я подключаюсь, если в случае файл сервера тут понятно, а вот клиент-сервер я чтото не пойму как будет производиться скажем обработка транзакций??? вернее кто её будет производить???


sniknik   (2004-07-30 11:10:00) [5]

> а этот пример на событие надо ставить?
ага, на событие нажатия кнопки например. ;о)

> или в DBImage стандартно прописать DataField и все?
для положеного так (и только bmp), да все.


sniknik   (2004-07-30 11:06:00) [6]

> чтото я не понял, я думал что аксес предназначен для локальных БД???
база да, локальная (декларируется так), но jet (OLEDB провайдер) работает как будто с сетевой (все идет через некое ядро, которое условно можно называть сервером), сделано так потому как ADO именно под это и предназначалось. такие настройки стоят по умолчанию. но ест возможность также работать как с локальной базой (прямое открытие файлов, без перекачки и буферизации). посмотри хелп на метод seek, там в сносках прописано что ему нужно. дальше см. указаное там.


roottim   (2004-07-30 11:03:00) [7]

2Term   (30.07.04 10:42) [10]
так точно... может и нафайл-сервере стоять

но принцып работы с ней как с клиент-сервером


Term   (2004-07-30 10:42:00) [8]


> наряду с методами сетевыми

чтото я не понял, я думал что аксес предназначен для локальных БД???


Term   (2004-07-30 10:40:00) [9]


> > т.к. он примитивен, а разве там нет типа блоб???
> не знаеш элементарного (есть ли блоб), а уже судиш о примитивности?
>

я не сужу о примитивности, это был просто наводящий вопрос, скорее не вопрос а подсказка :)) в какую сторону нужно смотреть


mouse_web   (2004-07-30 10:36:00) [10]

извините за глупый вопрос, а этот пример на событие надо ставить? и каким образом привязать к DBImage?
или в DBImage стандартно прописать DataField и все?


sniknik   (2004-07-29 22:38:00) [11]

> т.к. он примитивен, а разве там нет типа блоб???
не знаеш элементарного (есть ли блоб), а уже судиш о примитивности?

кстати насчет "примитивности", базы аксес (jet) единственные (!!!!) из всего семейства OLEDB драйверов, кто поддерживает некоторый класс свойств (локальные индексы, поиск по индексам), наряду с методами сетевыми. такое вот "два в одном".

(меняется все быстро, может я уже и ошибаюсь... но вряд ли, сейчас все новое только на серверные технологии ориентируют)

> Подскажите как отобразить картинку...
проще всего отображать положенное из самой дельфевской программы,  так например

ADODataSet1.Edit;
TBlobField(ADODataSet1.FieldByName('ImField')).LoadFromFile('Name.Bmp');
ADODataSet1.Post;

так DBImage это поле будет "видеть" невзирая на то что оно вообщето OLE ;о).


Johnmen   (2004-07-29 18:20:00) [12]

Поля типа блоб там есть. Только называются по-другому...:)

По работе с блобами вопросы регулярны - ищи ответы на этой конфе.


mouse_web   (2004-07-29 18:02:00) [13]

А что можешь предложить?
Мне картинки хотелось бы хранить в базе данных.

А полей типа блоб там нет :(


Term   (2004-07-29 17:58:00) [14]

тебе так важно чтобы использовать именно аксес???
ваще и в дальнейшем гемороя ты с ним не оберешся, т.к. он примитивен, а разве там нет типа блоб???


mouse_web   (2004-07-29 17:56:00) [15]


> или другой тип поля :)))


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


Term   (2004-07-29 17:51:00) [16]


> Подскажите, пожалуйста, может другой элемент надо использовать?

или другой тип поля :)))


clickmaker   (2004-07-29 17:50:00) [17]


> Прямым копированием картинок наполнил таблицу

енто как?

и подозреваю, что поля OLE - это не совсем bitmap, а DBImage нужен именно он


Наверх

Титульная страница Поиск, карта сайта Написать письмо