Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
15-1236846594
дед Маздай
2009-03-12 11:29
2009.05.24
Подскажите СУБД


15-1237765370
KilkennyCat
2009-03-23 02:42
2009.05.24
Прикольно. Надо срочно копать бункера.


2-1239122277
Drowsy
2009-04-07 20:37
2009.05.24
Как "передать управление клавиатурой" компоненту типа TPanel?


2-1239114286
микола
2009-04-07 18:24
2009.05.24
делфи и єксель


15-1237378003
Styx_
2009-03-18 15:06
2009.05.24
Шестнадцатиричные числительные





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский