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

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

TADOQuery и BLOB-поле [D7, MSSQL]


Страницы:   1 2

BBCHa ©   (2008-07-04 19:01:00) 

Знатоки, подскажите!
Возможно ли запихать SQL - запросом содержимое TImage (bmp, jpg) в базу и вытянуть опять же SQL-запросом обратно???

D7, база MsSQL.

Заранее пасибо.


Нат   (2008-07-30 00:25:00) [1]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988625472&n=14


Нат   (2008-07-29 18:51:00) [2]

Стандартный DBImage не умеет работать с jpeg
Универсальное свойство - Picture
Используйте в Image.Picture.LoadFromFile(), Image.Picture.Assign(),
Также LoadFromStream(), CreateBlobStream, SaveToFile

Запрос на сохранение
insert into MyTable ( MyPictureField) values ( :ParamPict);

на удаление
Update MyTable set MyPictureField = null where ID= КлючНужнойЗаписи;


piople   (2008-07-25 05:24:00) [3]

Ega23 ©, хз, тебе виднее...


Ega23   (2008-07-24 10:00:00) [4]


> Для некоторых баз данных через BDE так можно загрузить не
> более 64k


В настройках алиаса параметр BLOB Size для лохов придуман?


piople   (2008-07-24 07:38:00) [5]

1. Через таблицу:
(table1.fieldbyname('ddd') as TBlobField).loadfromfile('dddss');

Для некоторых баз данных через BDE так можно загрузить не более 64k

2. через параметры в квере...
ADOquery1.sql.text:='Insert into myTable (a) Values (:b)';
ADOQuery1.parameters.parseSQL(ADOquery1.sql.text, true);
ADOQuery1.parameters.parambyname('b').LoadFromFile('MyFile');
ADOQuery1.execsql;


Ega23   (2008-07-23 15:30:00) [6]


> Пиши еще тип в другое поле.


Зачем???
JPEG должен начинаться с $FFD8, bmp - $424D (в bmp, по-моему, в сигнатуре ещё 3-й байт участвует). Стрим у тебя уже есть. Читаешь 2 байта и смотрищь, чему они равны.


zorik   (2008-07-23 15:27:00) [7]


> stas ©   (23.07.08 15:24) [27]

Мне уже неактуально это.

Насорили здесь, а автора вопроса уже давно нет


stas   (2008-07-23 15:24:00) [8]

zorik ©   (23.07.08 15:07) [26]
Пиши еще тип в другое поле.


zorik   (2008-07-23 15:07:00) [9]

Поиск по словах DBImage+JPEG дает много ссылок как с этим боротся -- грузить в Image или же использовать сторонние компоненты. Тут проблема в том, что надо предварительно определить что в блобе: битмап грузится в picture.bitmap, a jpeg в picture.graphic


Ega23   (2008-07-23 12:12:00) [10]


> нет возможности у стандартного DBImage отображать JPEG.


Да? Я просто этой фигнёй не пользовался никогда... А для обычного - достаточно uses jpeg дописать...


stas   (2008-07-23 12:09:00) [11]

Ega23 ©   (23.07.08 11:03) [21]
Причем здесь uses jpeg?
нет возможности у стандартного DBImage отображать JPEG.


Anatoly Podgoretsky   (2008-07-23 11:57:00) [12]


> zorik ©   (23.07.08 09:31) [13]

Так тут еще вопрос, как различать, что в поле, поле то не OLE
А если судить по твоему советуж, то тебе как то все равно это

> zorik ©   (23.07.08 10:48) [18]


zorik   (2008-07-23 11:06:00) [13]


> uses JPEG; ?

Да

"Bitmap Image is not valid"


Ega23   (2008-07-23 11:03:00) [14]


> На практике, только что проверил, jpeg у меня не отображался.

uses JPEG; ?


zorik   (2008-07-23 10:57:00) [15]


> Ega23 ©   (23.07.08 10:51) [19]

На практике, только что проверил, jpeg у меня не отображался. Использую TJvDBImage (JEDI) -- там все ок. Может где-то в свойствах TDBImage.Picture надо формат задавать и тогда все будет ок. Не знаю )))


Ega23   (2008-07-23 10:51:00) [16]


> Стандартный TDBImage, насколько мне не изменяет память,
> отображает только bitmap


Изменяет. Не только битмап.


zorik   (2008-07-23 10:48:00) [17]


> Теперь в самый раз вспомнить, что кроме TImage есть и TDBImage

Только в случае с bitmap. Стандартный TDBImage, насколько мне не изменяет память, отображает только bitmap


Anatoly Podgoretsky   (2008-07-23 10:21:00) [18]

Теперь в самый раз вспомнить, что кроме TImage есть и TDBImage


Ega23   (2008-07-23 09:49:00) [19]


> Визуализация сохраненной картинки
> frWorkersService.edPhoto_Worker.Picture.Assign(TBlobField(Query.
> FieldByNam e('Photo')));


var
 ms : TMemoryStream;
 bmp : TBitmap;
begin
 with Query do
 begin
   if (not Active) or (IsEmty) then Exit;
   ms := TMemoryStream.Create;
   try
     TBLOBField(FieldByName('Photo')).SaveToStream(ms);
     ms.Position := 0;
     bmp := TBitmap.Create;
     try
       bmp.LoadFromStream(ms);
       edPhoto_Worker.Picture.Assign(bmp);
     finally
       bmp.Free;
     end;  
   finally
     ms.Free;
   end;
 end;
end;


Ega23   (2008-07-23 09:45:00) [20]


> zorik ©   (23.07.08 09:31) [13]


Зачем грузить из файла в стрим, а потом из стрима в BLOBField, если у TBLOBField есть метод LoadFromFile????


Страницы:   1 2

Наверх

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