Главная страница
    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.047 c
6-1103102098
Ramm
2004-12-15 12:14
2005.02.27
Не могу установить компоненту TEmbeddedWB


4-1105875118
vogel
2005-01-16 14:31
2005.02.27
Как отслеживать открытие окна и его сворачивать


4-1104927780
Sphinx
2005-01-05 15:23
2005.02.27
Макет TAppAPI


4-1105297063
vic_vm
2005-01-09 21:57
2005.02.27
Возможно ли перечислить все ловушки (hook) в системе....


1-1108488680
han-bratan
2005-02-15 20:31
2005.02.27
RTTI





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