안녕하세요
궁금한것이 있어서 질문드립니다...
서버는 ms-sql2005를 사용하고 있고 필드는 varchar(max)형을 쓰고 있는 필드에
이미지 파일을 저장할려고 하는데 어떻게 해야 하는지 궁금합니다..
기존에는 필드형식을 image로 줬을 경우 blob형식으로 해서 인서트를 가능하게 했었는데..
이렇게 쓰지 말라고 하네요... 그래서 타입이 varchar(max)인경우에는 어떻게 해야하는지 궁금합니다...
도저히 찾아봐도 어떻게 해야하는지 모르겠습니다..
아래는 필드타입이 image 였을경우 코딩입니다.
var lJPGIMG : TJpegImage;
lMS : TMemoryStream;
lNEWSEQ : String;
sSize : String;
lSELMAX : String;
begin
if StrToFloat(ED_File_size.Text) > 512000 then
begin
TMS_ShowMessage('500KB 이하의 이미지만 등록가능합니다..',Self);
Exit;
end;
if ADOQry1.Eof then
begin
// p_MyShowMessage('신규 이미지','등록 처리중입니다..',FALSE);
ADOQry1.SQL.Clear;
ADOQry1.SQL.Text := lINS;
ADOQry1.Parameters.ParamByName('CD_EMP').Value := ED_cd_emp.Text;
if Image2.Picture.Graphic <> NIL then
begin
lJPGIMG := TJpegImage.Create;
lMS := TMemoryStream.Create;
lJPGIMG.Assign(Image2.Picture.Graphic);
lMS.Position:=0;
lJPGIMG.SaveToStream(lMS);
ADOQry1.Parameters.ParamByName('POTO').LoadFromStream(lMS,ftBlob);
lJPGIMG.FREE;
lMS.FREE;
end
else begin
ADOQry1.Parameters.ParamByName('POTO').LoadFromStream(lMS,ftBlob);
ADOQry1.Parameters.ParamByName('SIGN_IMG').LoadFromStream(lMS,ftBlob);
end;
|