Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

MSSQL - как сохранить картинку в таблицу??   Найти похожие ветки 

 
ViJen   (2005-01-27 15:28) [0]

День добрый мастера!
У меня есть табличка на MSSQL с полем Image и ADOQuery в Delphi.
Каким образом с помощью квери сохранить картинку из TImage на форме или из файла в табличку и как потом из этого поля показать ее обратно в TImage?
Пробовала через параметры квери - вроде что-то сохраняет, но при попытке достать обратно ругается на неверный формат.
Объясните плиз как обычно такие операции делаются?


 
Stanislav ©   (2005-01-27 15:44) [1]

Вот так читать. А на оборот записать.
В принципе не разберешься скину и как записать

function ShowJPG (Field:TBlobField;var Image:TImage):Integer;
var S:TMemoryStream;J:TJPEGImage;
begin
Result:=0;
if not Field.DataSet.Active or Field.IsNull
then
 begin
   Image.Canvas.Brush.Color:=clBtnFace;
   Image.Canvas.FloodFill(0,0,clWhite,fsSurface);
   patBlt (Image.Canvas.Handle ,0,0,Image.Picture.Width,Image.Picture.Height,PATCOPY);
 end
else
 begin
   S:=TmemoryStream.Create;
   J:=TJpegImage.Create;
   S.Position:=0;
   Field.SaveToStream(S);
   S.Position:=0;
   J.LoadFromStream(S);
   Image.Picture.Bitmap.Assign(J);
   Result:=S.Size;
   J.Free;
   S.Free;
 end;


 
Ega23 ©   (2005-01-27 15:54) [2]


procedure DownloadImage(PersID:string);
var
fn,fnBlank,ss:string;
Fld:TBlobField;

begin


fn:=ExtractFilePath(ParamStr(0))+"FaceImg.jpg";
fnBlank:=ExtractFilePath(ParamStr(0))+"Blank.jpg";
ss:="select PersFaceImg,FaceDat from persadd where persid="+PersID;
quOpen(DMpas.RQTemp,ss);
Fld:=TBlobField(DMpas.RQTemp.FieldByName("PersFaceImg"));
if not fld.IsNull then
 begin
  fld.SaveToFile(fn);
  Image1.Picture.LoadFromFile(fn);
 end
else
 begin
  Image1.Picture.LoadFromFile(fnBlank);
 end;

DMpas.RQTemp.Close;
end;


 
Ega23 ©   (2005-01-27 15:58) [3]

Загрузка в базу:


DMpas.RQImage.ParamByName("Img").LoadFromFile(ExtractFilePath(ParamStr(0))
                                            +"FaceImg.jpg",ftBlob);
DMpas.RQReadImg.Open;


Текст запроса DMpas.RQReadImg:

update PersAdd set PersFaceImg=:Img
where PersID=....


 
ViJen   (2005-01-27 15:59) [4]

Ага спасибки!! Работает.
Тока если bmp записываешь, то не читает. А как бы и то и другое читать?


 
Ega23 ©   (2005-01-27 16:05) [5]

Тока если bmp записываешь, то не читает. А как бы и то и другое читать?

Ну, в моём примере хоть PNG записывай. Только PNG TImage просто так не поймёт  :о)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
8-1100370479
londinium
2004-11-13 21:27
2005.02.27
about ScanLine


14-1107237517
Vlad Oshin
2005-02-01 08:58
2005.02.27
Досуг, свободное время, хобби и т.п.


1-1108304351
Alex31
2005-02-13 17:19
2005.02.27
Как в RichEdit загрузить файл DOS формата?


14-1107772373
Ivan Shikhalev
2005-02-07 13:32
2005.02.27
Кто-нибудь видел Hi Asm?


1-1108447918
Dr. Genius
2005-02-15 09:11
2005.02.27
Об использовании DynamicSkinForm и BusinessSkinForm





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский