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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
1-1108152524
GreySerg
2005-02-11 23:08
2005.02.27
Как узнать языковую версию Windows 2000, XP, 2003 ?


6-1103614493
Layner
2004-12-21 10:34
2005.02.27
Господа, подскажите, с помощью какого компанента INDY можно


6-1103521635
Lex_!
2004-12-20 08:47
2005.02.27
Web-чат.


1-1108211901
Koshak
2005-02-12 15:38
2005.02.27
Timer


14-1107446483
Antonn
2005-02-03 19:01
2005.02.27
Как определить ошибку...