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

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

Рисунок из БД в TImage [D5, MSSQL]


Страницы:   1 2

KirillRepin ©   (2008-09-15 09:30:00) 

Возникает проблема, при загрузки рисунка из БД в TImage загружается только черный фон и больше ничего. Что делать?

Загрузка в БД:
Query1.SQL.Clear;
Query1.SQL.Text := 'exec Proc_AddImage @im=:im';
Query1.ParamByName('im').LoadFromFile('C:\1.bmp', ftBlob);
Query1.ExecSQL;

загрузка рисунка из БД в TImage:
var
 s:TMemoryStream;
begin
 s:=TMemoryStream.Create;
 Query1.Close;
 Query1.SQL.Clear;
 Query1.SQL.Text := 'SELECT Pic_Name, Pic FROM Tab_Pictures WHERE Id_Pictures = 4';
 Query1.Open;
 (Query1.FieldByName('Pic') as TBlobField).SaveToStream(s);
 s.Position := 0;
 Image1.Picture.Bitmap.LoadFromStream(s);
 s.Free;
end;


KirillRepin   (2008-09-15 14:11:00) [1]

Спасибо за информацию!


Ega23   (2008-09-15 12:22:00) [2]


> а если работать через АДО таких проблем не будет?


Я тебе, помнится, уже говорил, что BDE - древняя и устаревшая технология. Её использование в наше время может быть оправдано только в одном случае - поддержка древнего проекта, написанного для BDE.
Для работы с MSSQL надо использовать ADO. Тем более, если проект "с нуля" начинается.


KirillRepin   (2008-09-15 12:06:00) [3]


>
> BDE Administrator - настойка твоего алиаса - BLOB SIZE поменяй
> с 32 на 999

а если работать через АДО таких проблем не будет?


Поросенок Винни-Пух   (2008-09-15 12:01:00) [4]

зафетчить блоб целиком


Ega23   (2008-09-15 12:00:00) [5]


> сделал и открыл редактором. открылось только 3-5% рисунка
> с низу остальное все черное.


BDE Administrator - настойка твоего алиаса - BLOB SIZE поменяй с 32 на 999


KirillRepin   (2008-09-15 11:59:00) [6]


> Поросенок Винни-Пух ©   (15.09.08 11:56) [16]
>
> это как понять?
>
> открылось только 3-5% рисунка

а как с этим справится?


Поросенок Винни-Пух   (2008-09-15 11:56:00) [7]

это как понять?

открылось только 3-5% рисунка


KirillRepin   (2008-09-15 11:52:00) [8]


> Поросенок Винни-Пух ©   (15.09.08 11:51) [14]
>
> блоб незафетчен полностью

это как понять?


Поросенок Винни-Пух   (2008-09-15 11:51:00) [9]

блоб незафетчен полностью


KirillRepin   (2008-09-15 11:46:00) [10]


> попробуй ты сохранить его не в стрим, а в файл C:\2.bmp
>  и открыть его редактором.

сделал и открыл редактором. открылось только 3-5% рисунка с низу остальное все черное.

код:
 Query3.Close;
 Query3.SQL.Clear;
 Query3.SQL.Text := 'SELECT Pic_Name, Pic FROM Tab_Pictures WHERE Id_Pictures = 4';
 Query3.Open;
 (Query3.FieldByName('Pic') as TBlobField).SaveToFile('C:\2.bmp');


Ega23   (2008-09-15 11:27:00) [11]

Блин, ну попробуй ты сохранить его не в стрим, а в файл C:\2.bmp  и открыть его редактором.


stas   (2008-09-15 11:27:00) [12]

KirillRepin ©   (15.09.08 11:19) [10]
Сделай тоже самое через ADO.


KirillRepin   (2008-09-15 11:19:00) [13]


> Ответ есть в справке к методу LoadFromStream класса TPicture,
>  последняя строчка.

может справка кривая но у класса TPicture нет метода LoadFromStream


KirillRepin   (2008-09-15 11:15:00) [14]

попробовал через DBImage тот же результат - черное поле.
честно говоря уже голова кипит и несоображает что с этим делать?


Плохиш   (2008-09-15 10:43:00) [15]


> KirillRepin ©   (15.09.08 10:03) [2]
> да это повторение вопроса т.к. ответа там на него нет.

Ответ есть в справке к методу LoadFromStream класса TPicture, последняя строчка.


Ega23   (2008-09-15 10:33:00) [16]


> прогнал программу в переменную s ничего вроде не записывается
> только почему не понял?


Учись отлаживать программу. Программист ты, или кто?


KirillRepin   (2008-09-15 10:31:00) [17]

прогнал программу в переменную s ничего вроде не записывается только почему не понял?


Ega23   (2008-09-15 10:22:00) [18]


> если возможно подскажите где ошибка и как исправить


Воспользоваться волшебными кнопками F5, F7 и F8


KirillRepin   (2008-09-15 10:17:00) [19]

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


Ega23   (2008-09-15 10:13:00) [20]


> ответа там на него нет.


Ответа на него там есть. Дальше проверяй программу - что как и где ты грузишь в БД и как потом выгружаешь.


Страницы:   1 2

Наверх

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