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

Вниз

Проблемма с извлечением картинки из базы данныз 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.011 c
4-89643
ламер
2003-08-21 18:45
2003.10.27
добавить запись в win,ini


3-89105
Данила
2003-10-08 12:59
2003.10.27
Результаты в DBgrid.


3-89124
DECL
2003-10-08 00:41
2003.10.27
Как правильно создать SQL-запрос?


7-89622
_man_
2003-08-12 15:30
2003.10.27
Как считать default-значение ключа реестра?


1-89383
mokc0der
2003-10-17 09:09
2003.10.27
& dynamic arrays





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский