Главная страница
    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.037 c
14-1106043953
ocean
2005-01-18 13:25
2005.02.27
Женщина-программист


1-1108030234
Zhenja
2005-02-10 13:10
2005.02.27
QReport. Печать. Помогите пожалуйста.


3-1106912783
LEONardo
2005-01-28 14:46
2005.02.27
Из только чтение в полный доступ


3-1107125560
Solenko
2005-01-31 01:52
2005.02.27
Просмотр помеченных на удаление


1-1108414574
Kubic
2005-02-14 23:56
2005.02.27
срочно нужен компанент





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