Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работать с DBImage ? Принцип работы 
V
    Опции темы
Lianamir
Дата 16.10.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Просмотрела кучу похожих тем и не нашла подходящего ответа.
Мне необходимо отобразить соответствующую картинку при выборе товара из DBlookomboboks.
Картинки подготовлю любого формата.
помогите понять с чего начать?
PM MAIL ICQ   Вверх
Anark1
Дата 16.10.2007, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Lianamir, лично я вообще не люблю использовать DBMemo, DBEdit, DBImage и т.д. Часто бывает необходимо отображать нечто другое или сохранять значение полей, выполняя другой запрос. В общем по мне все эти компоненты довольно неповоротливы.
По теме : 
http://helpstudio.h1.ru/books/d4/d4_17/_dbimage.htm
http://www.sql.ru/faq/faq_topic.aspx?fid=518
Если использовать для аналогичных целей компонент TImage то ,например так ,выполняется загрузка приложения из БД
Код

{
TStream *MyStream;
TJPEGImage *jpg = new TJPEGImage();

MyStream = Form1->ADOQuery1->CreateBlobStream(Form1->ADOQuery1->FieldByName("PHOTO"), bmRead);
jpg->LoadFromStream(MyStream);
Form1->Image1->Picture->Assign(jpg);
MyStream->Free();
}


Добавлено через 48 секунд
В Delphi методы аналогичны


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lianamir
Дата 18.10.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Спасибо за ссылки и совет, в дальнейшем я думаю тоже перейду к другому виду запроса, сейчас я делаю то что мне ближе для понимания.
Я могу использовать image или DBImage, могу загружать в них картинки, могу обращаться к базе за информацией и тд.
в этом нет проблем.
Проблема в том как сделать чтобы картинки были в базе?
Я нашла единственный ответ, что поля содержат битовую карту картинки........
Вопрос: что нужно сделать чтобы поля содержали информацию о моих БМПэшек.??
PM MAIL ICQ   Вверх
Anark1
Дата 18.10.2007, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Lianamir, в базе можно хранить саму картинку (BLOB) или ссылку на картинку, расположенную на диске. Есть свои плюсы и минусы. Что подразумевается под понятием "информация о бмпшках" ?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lianamir
Дата 18.10.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



информация о бмпшках-это .......................................
    Я читала советы 3 варианта.
1 вариант-загрузить картинку в поле,
                        ( но из-за несовместимости формата хранения изображения  
                                       будет вылетать ошибка, в этом случае надо загружать программно в дельфике
                                    (это как раз твой случай, приведеный выше код))
2 вариант-загрузить ссылку на изображение, а потом привязать его к DBImage.

3 вариант-загрузить битовую карту картинки и далее DBImage.

Добавлено через 5 минут и 10 секунд
Ноя ни как не могу сообразить с чего начать..........
Вопервых незнаем как создать эту ссылку......и тд.

Хорошо....допустим пойдём по твоему сложному  пути
у меня 8 картинок я каждую загружаю в поле и сохраняю, потом привязываю dbimage......
я правильно поняла???

Добавлено через 6 минут и 29 секунд


Цитата

ссылку на картинку

Anark1, 
А как мне создать ссылку????????

PM MAIL ICQ   Вверх
Anark1
Дата 18.10.2007, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



DBImage никуда привязывать не надо. DBImage отобразит картинку из поля текущей записи, только если это действительно картинка, а не ссылка. 
Если использовать TImage для работы с изображением, размещенным в БД, то существует метод CreateBLOBStream (я описал его выше).
Если использовать TImage для работы с изображением, на которое размещена ссылка в БД, то нужно прочитать эту ссылку из поля, а затем использовать метод LoadFromFile.
Если вопрос стоит как заносить ссылку в БД, то на клиенте с помощью Dialog выбираем нужную картинку и отлавливаем путь к ней. потом заносим в БД. По поводу битовой карты лучше спросить у гугла, чем у меня  smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lianamir
Дата 19.10.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Можете примерно показать код загрузки BMP файла в поле blob?
Если я это делаю в базе то будет ошика, как я понимаю мне надо загрузить в поле картинку програмно и сохранить (Post)
Потом следующию и опять (Post))
PM MAIL ICQ   Вверх
Anark1
Дата 19.10.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11





--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Lianamir
Дата 20.10.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Спасибо! Очень полезная информация.......Эксперементирую.........
PM MAIL ICQ   Вверх
Lianamir
Дата 21.10.2007, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Anark1   smile  Я добилась.............всётаки
Закидываю картинки в блоб поля через OpenPictureDialog.
Далее отображаю их в DBImage (который ты так не любишь)


Код

procedure TForm1.BitBtn4Click(Sender: TObject);
var
  B: TBitmap;
begin
if DataModule2.OpenPictureDialog1.Execute then
begin
  B := TBitmap.Create;
  try
    B.LoadFromFile(DataModule2.OpenPictureDialog1.FileName);
    DataModule2.ADOTable1.edit;
 (DataModule2.ADOTable1.FieldByName('Image').Assign(B));
 DataModule2.ADOTable1.Post;
  finally
    B.Free;
end;
end;
end;


долго не получалось из за отсутствия этого метода  (ADOTable1.edit).........
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.