![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рисунок из БД в TImage [D5, MSSQL]
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]
> ответа там на него нет.
Ответа на него там есть. Дальше проверяй программу - что как и где ты грузишь в БД и как потом выгружаешь.