![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
<BLOB Graphic> [D6, Paradox]
Сергей77 © (2003-08-14 08:56:00)
Осваиваю програмирование. В таблицу Paradox 7, поле <BLOB Graphic>, при загрузке рисунка размером более чем 800х600 пикселов
Project .. raised exception class EInvalidGraphic with message "Bitmap image is not valid"
Это проблема Paradox ? Если так то есть БД которые позволяют работать с рисунками больших размеров?
Кстати в базу он записывается. Открываю БД с помощью SQL Explorer (поставляется вместе с DELFI), Explore Blobs выдает сообщение "Bitmap image is not valid".
Проблема решается?
Сергей77 (2003-08-15 04:52:00) [1]
Я пользуюсь DBImage. Может удобней в базе сохранять имена файлов, а рисунки в отдельном каталоге хранить? Твой способ тоже попробую. У меня книга по Дельфи6 на тысячу с лишним страниц, я там не встречал ни TMemoryStream ни TJpegImage :(
Zorik (2003-08-14 17:08:00) [2]
Interbase например
А ты как загружаеш через потоки. Через TMemoryStream можно и jpeg загружать.
uses Jpeg;
var ms: TMemoryStream;
jpg: TJpegImage;
запись
try
ms:=TMemoryStream.Create;
jpg:=TJpegImage.Create;
jpg.LoadFromFile(FileName);
jpg.SaveToStream(ms);
ms.Position:=0;
with Table(Query) do
begin
Edit;
FieldbyName("Graphic").LoadFromStream(ms);
Post;
//здесь типа ApplyUpdates, Commit (для Interbase)
end;
finally
ms.Free;
jpg.Free;
end;
чтение
try
ms:=TMemoryStream.Create;
FieldbyName("Graphic").SaveToStream(ms);
jpg:=TJpegImage.Create;
ms.Position:=0;
jpg.LoadFromStream(ms);
Image1.Picture.Assign(jpg);
finally
ms.Free;
jpg.Free;
end;