Форум: "Базы";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
ВнизРисунок из БД в TImage Найти похожие ветки
← →
KirillRepin © (2008-09-15 09:30) [0]Возникает проблема, при загрузки рисунка из БД в 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;
← →
Johnmen © (2008-09-15 09:57) [1]http://delphimaster.net/view/3-1221223824/
← →
KirillRepin © (2008-09-15 10:03) [2]
> Johnmen © (15.09.08 09:57) [1]
>
> http://delphimaster.net/view/3-1221223824/
да это повторение вопроса т.к. ответа там на него нет.
← →
Ega23 © (2008-09-15 10:13) [3]
> ответа там на него нет.
Ответа на него там есть. Дальше проверяй программу - что как и где ты грузишь в БД и как потом выгружаешь.
← →
KirillRepin © (2008-09-15 10:17) [4]Загружаю картинку, выгружается непонятно что. код программы приведен выше. если возможно подскажите где ошибка и как исправить т.к. с такой задачей сталкиваюсь впервые.
← →
Ega23 © (2008-09-15 10:22) [5]
> если возможно подскажите где ошибка и как исправить
Воспользоваться волшебными кнопками F5, F7 и F8
← →
KirillRepin © (2008-09-15 10:31) [6]прогнал программу в переменную s ничего вроде не записывается только почему не понял?
← →
Ega23 © (2008-09-15 10:33) [7]
> прогнал программу в переменную s ничего вроде не записывается
> только почему не понял?
Учись отлаживать программу. Программист ты, или кто?
← →
Плохиш © (2008-09-15 10:43) [8]
> KirillRepin © (15.09.08 10:03) [2]
> да это повторение вопроса т.к. ответа там на него нет.
Ответ есть в справке к методу LoadFromStream класса TPicture, последняя строчка.
← →
KirillRepin © (2008-09-15 11:15) [9]попробовал через DBImage тот же результат - черное поле.
честно говоря уже голова кипит и несоображает что с этим делать?
← →
KirillRepin © (2008-09-15 11:19) [10]
> Ответ есть в справке к методу LoadFromStream класса TPicture,
> последняя строчка.
может справка кривая но у класса TPicture нет метода LoadFromStream
← →
stas © (2008-09-15 11:27) [11]KirillRepin © (15.09.08 11:19) [10]
Сделай тоже самое через ADO.
← →
Ega23 © (2008-09-15 11:27) [12]Блин, ну попробуй ты сохранить его не в стрим, а в файл C:\2.bmp и открыть его редактором.
← →
KirillRepin © (2008-09-15 11:46) [13]
> попробуй ты сохранить его не в стрим, а в файл 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");
← →
Поросенок Винни-Пух © (2008-09-15 11:51) [14]блоб незафетчен полностью
← →
KirillRepin © (2008-09-15 11:52) [15]
> Поросенок Винни-Пух © (15.09.08 11:51) [14]
>
> блоб незафетчен полностью
это как понять?
← →
Поросенок Винни-Пух © (2008-09-15 11:56) [16]это как понять?
открылось только 3-5% рисунка
← →
KirillRepin © (2008-09-15 11:59) [17]
> Поросенок Винни-Пух © (15.09.08 11:56) [16]
>
> это как понять?
>
> открылось только 3-5% рисунка
а как с этим справится?
← →
Ega23 © (2008-09-15 12:00) [18]
> сделал и открыл редактором. открылось только 3-5% рисунка
> с низу остальное все черное.
BDE Administrator - настойка твоего алиаса - BLOB SIZE поменяй с 32 на 999
← →
Поросенок Винни-Пух © (2008-09-15 12:01) [19]зафетчить блоб целиком
← →
KirillRepin © (2008-09-15 12:06) [20]
>
> BDE Administrator - настойка твоего алиаса - BLOB SIZE поменяй
> с 32 на 999
а если работать через АДО таких проблем не будет?
← →
Ega23 © (2008-09-15 12:22) [21]
> а если работать через АДО таких проблем не будет?
Я тебе, помнится, уже говорил, что BDE - древняя и устаревшая технология. Её использование в наше время может быть оправдано только в одном случае - поддержка древнего проекта, написанного для BDE.
Для работы с MSSQL надо использовать ADO. Тем более, если проект "с нуля" начинается.
← →
KirillRepin © (2008-09-15 14:11) [22]Спасибо за информацию!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c