Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.24;
Скачать: CL | DM;

Вниз

Рисунок из БД в 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.011 c
15-1237466374
немо2
2009-03-19 15:39
2009.05.24
Как обмануть компьютер, чтоб он думал, что в сети?


3-1221206642
KirillRepin
2008-09-12 12:04
2009.05.24
добавление рисунка в БД из файла


4-1201794430
Ник
2008-01-31 18:47
2009.05.24
Идентификация флешки


15-1233457388
TUser
2009-02-01 06:03
2009.05.24
Асрономия в вопросах и ответах


2-1239057754
Dim
2009-04-07 02:42
2009.05.24
Совместный доступ к файлу