Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

Проблемма с извлечением картинки из базы данныз Paradox   Найти похожие ветки 

 
Rule ©   (2003-10-05 21:41) [0]

Задача: необходимо в базу данных Парадокс поместить jpeg овский рисунок, и при скроллинке в программе должен этот рисунок отображаться в определенном месте (не важно в каком)

Способ решения: для хранения рисунков создано поле двоичный блоб, и в событии таблицы (для работы используется обычный компонент ттейбл и бде)афтерскролл читается содержимое поля и помещается в стандартный компонент типа TImage, так как стандартный ДБИмаге не понимает джпегов, ну так вот а для помещения картинки просто в это пле записывается из выбранного файла содержимое.

возникшие трудности: вопервых, для записи из файла в поле использовал команду такую
DM.FirmBlock.loadfromfile(opendialog.filename);
где
dm - форма, сдержащаю все компоненты базы данных
Firm - название таблицы
Block - название вот этого самого поля
я не ощибся между фирм и блок нет точки этот объект как поле инициализируется.
так вот при записи содержимое файла записывается в первую запист и только, может я не так использую этот объект, если нет то что мне делать
и вторая трудность это я не могу с мемори стрим загрузить в компонкнту Image картинку, объясняю почему
использую такую запись
var
ms: TMemoryStream
begin
ms:=TMemoryStrem.create;
DM.FirmBlock.SaveToStream(ms);
MainForm.Image1.Picture.Graphic.LoadFromStrem(ms);
ms.free;

вот так но оно не работате а выдает ошибку так как надо загружать не из графика а из пикчер допустим вот так работает
MainForm.Image1.Picture.LoadFromFile("название там какогонибудь файла");
но в свойстве Пикчер нет метода загрузки из потока, как мне быть?????????????????????????????????????????????????????????


 
Rulee   (2003-10-06 09:47) [1]

Неужели никто не знает, помогите мне пожалуйста


 
Term   (2003-10-06 10:31) [2]

попробуй так:
var
Btm:TBitmap;
begin
Btm:=TBitmap.Create;
Btn.Assign(TableBitmap);
Image.Picture.Bitmap.Assign(Btn);
Btn.Free;
end;

и потоки не нужны


 
Term   (2003-10-06 10:34) [3]

в Image изображение кажется в любом случае приводиться к bmp, хотя могу и ошибаться


 
Rule ©   (2003-10-06 10:46) [4]

ДА дело то не в потоках, а в том что при обращении к полю как к отдельному объекту, тоесть к полю как к полю TBLOB, FORMNAME.TABLEFIELDBLOCK.value - выдает только первое значение таблицы, вот в чем вопрос ...


 
Term   (2003-10-06 11:00) [5]

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


 
Rule ©   (2003-10-06 22:26) [6]

да не забыл конечно, только я использую команду едит ... пост потомучто картинкка добавляется к уже существующим записям, логично ведь, сначала создается запись а потом добавляется ккартинка, а не наоборот, картинка без записи это немного старнновато-недопустимо в отличии от записи без картинки (по логике вещей моей БД)


 
Shurik   (2003-10-06 23:42) [7]

Вот ни чего не понял :)
Если нужно сохранить, то (поле as TBlobField).LoadFromStream(...), есть пример в хелпах. И далее по тексту. И наоборот если нужно сохранить. Есть кульная библия FastLib (или FastDib, но абсолютно бесплатная (работает и с пресловутыми jpg) в разделе DelphiGFX), которая позволит и загрузить и сохранить в поток, и перекинуть на канву Image, ... устал одним пальцем набирать:)


 
Rule ©   (2003-10-07 00:13) [8]

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


 
Shurik   (2003-10-07 00:32) [9]

Вот ни чего не понял (опять), что есть "первое значение" :)
Возможно ты имеешь ввиду то, что, image не обновляется при прогоне строк? Поставь UpDate на AfterScroll Tabla. И еще, если у тебя TBlobField то не хрена не выйдет (нужен TGraphicField). И что такое поток...


 
Term ©   (2003-10-07 09:04) [10]


> да не забыл конечно, только я использую команду едит ...
> пост потомучто картинкка добавляется к уже существующим
> записям, логично ведь, сначала создается запись а потом
> добавляется ккартинка, а не наоборот, картинка без записи
> это немного старнновато-недопустимо в отличии от записи
> без картинки (по логике вещей моей БД)

приведи код а то я чтото не пойму что ты там замутил


 
TuZ   (2003-10-07 09:29) [11]

Какие-то сложности непонятные...
У меня работало (и еще работает)все с стандартными компонентами... И кода там немного...
Мой совет (т.к. исхдоники на работе): TDBImage, DataSet - и немного кода (строчек 10-15). Все...



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

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
14-89473
Layner
2003-10-07 10:25
2003.10.27
E book compiler полная лажа (html>exe)


1-89338
AndreyG
2003-10-16 15:07
2003.10.27
Как загрузить данные из текстового файла (с разделителями) в базу


4-89638
Andrey_g
2003-08-21 18:52
2003.10.27
Как прочитать данные по конкретному адресу на CD


1-89257
Lam
2003-10-14 17:51
2003.10.27
Дата


4-89654
Bes
2003-08-20 17:32
2003.10.27
Что-то у меня не получается...