Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

TDBImage не показывает картинки из БД через ADO   Найти похожие ветки 

 
Hound_Dog ©   (2004-05-03 14:56) [0]

Итак, есть БД Акцеес 2000, доступ производится через ADO. В таблице БД хранятся катринки (поле объекта OLE). Связка ADOConnection - ADOQuery - DataSet - DBGrid. Поле с картинкой отображается в DBGrid как BLOB. Окей, привязываем компонент TDBImage к полю pic (то есть картинка). Не показывает, несмотря на любые данные в таблице - BMP, JPEG, GIF.
Присвоение по событию DBImage1.Picture.Bitmap.Assign(TBLOBField (ADOQuery2.FieldByName("pic"))); так же ничего не дает (вылетает с той же ошибкой Bitmap image is not valid) (ADOQuery2.SQL = "SELECT pic FROM table1 where index = 2)

Что не так, подскажите? третий день бьюсь.


 
sniknik ©   (2004-05-03 16:51) [1]

ложи картинку в базу из дельфей аналогично как и читаеш (через DBImage1 к примеру) - DBImage1.LoadFromFile().

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


 
Hound_Dog ©   (2004-05-05 08:48) [2]

Гым...
Я знаю, что ОЛЕ это не всегда рисунок, в общем случае набор байт.
Тут картина какая - я так сказать, точно знаю, что в этом поле, поскольку сам туда это засунул. Дело же в следующем: БД наполняется не из дельфи-клиента, а из собственной акцесс-формы, а дельф мне потребовался для описания автоматизации с CorelDRAW. В принципе, в БД хрянятся мемо-поля и джипеги, а моя задача - написать програмулину кидающую текст и картинки в CDRW. С Корелем все более-менее ясно, а вот с картинками.... Ну нет у меня возможности и желания переписывать Акцесс на Дельфи.


 
Andriy Tysh ©   (2004-05-05 10:18) [3]


> DBImage1.Picture.Bitmap.Assign(TBLOBField (ADOQuery2.FieldByName("pic")));
>

Это прокатит если тянешь BMP.
Я в ДВГриде тоже рисовал. То написал процедуру, которая проверяет BMP или JPEG (иного у меня нет). Может и Вы попробуйте после вытягивания проверить или переконвертировать в удобный формат.


 
sniknik ©   (2004-05-05 11:09) [4]

> Дело же в следующем: БД наполняется не из дельфи-клиента
вот с этого надо было начинать, что наполняется не из дельфей
ты формат знаеш? там префикс в данных (82 длинна) с описанием что это за обьект (это если стандартно из Access ложить)
вот стандартный доступ к BMP

var Stream: TMemoryStream;
   Pref: Word;
begin
 Stream:= TMemoryStream.Create;
 try
   TBLOBField(ADODataSet1.FieldByName("ImField")).SaveToStream(Stream);
   if Stream.Size <> 0 then begin
     Stream.Position:= 0;
     Stream.ReadBuffer(Pref, 2);
     if Pref = $4D42 then DBImage1.DataSource:= DataSource1 //это положено из дельфей включаем стандартный DBImage
     else begin //это аксесом перекладываем в Image
       Stream.Position:= 82;
       Image1.Picture.Bitmap.LoadFromStream(Stream);
     end;
   end;
 finally
   Stream.Free;
 end;
end;



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.044 c
1-1084819311
AndrewVolkov
2004-05-17 22:41
2004.05.30
Анимация нажатия кнопки


11-1073638302
<Falcon>
2004-01-09 11:51
2004.05.30
Для ТТ шрифтов Font.FontWidht - это значение в пикселах?


1-1084739875
Dmitry Vyacheslavovich
2004-05-17 00:37
2004.05.30
Свойство "text" пропало...


1-1084732570
Жека
2004-05-16 22:36
2004.05.30
Как в TMemo переходить на нижнюю строку?


14-1084267185
NeyroSpace
2004-05-11 13:19
2004.05.30
Восстановление WinXP на NoteBook





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский