자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi DB에 이미지 등록
2016.01.15 15:46
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
안녕하세요!
모바일로 사진을 찍은후 DataBase에 이미지를 등록하는 어플을 테스트 중인데 잘안돼서 질문드려요~~!!
한번에 개발하는 안드로이드/IOS 앱 with 델파이 고급 교제
실습) 만들어봅시다 : 사원정보 실전 앱 따라하기는 잘 되어서
참고하였습니다.
DB는 MSSQL을 사용하였고 Server 컴퓨터를 따로 사용해야해서 DataSnap을 이용하였습니다.
ServerMethodsUnit1에 Procedure을 만들고
procedure TServerMethods1.Save(AImage: TStream);
begin
FDQuery1.Edit;
(FDQuery1.FieldByName('사진') as TBlobField).LoadFromStream(AImage);
FDQuery1.Post;
FDQuery1.ApplyUpdates(0);
FDQuery1.CommitUpdates;
FDQuery1.Refresh;
end;
앱에 배포한 프로젝트의 저장 버튼을 아래와 같이 만들어주었습니다.
procedure TForm6.Button1Click(Sender: TObject);
var
ImgStream : TMemoryStream;
Method : TServerMethods1Client;
begin
ImgStream := TMemoryStream.Create;
Method := TServerMethods1Client.Create(U_menu.Form1.SQLConnection1.DBXConnection);
try
Image1.Bitmap.SaveToStream(ImgStream); //이미지는 actionlist의 카메라기능 버튼으로 사진을 찍은 이미지입니다.
Method.Save(ImgStream);
finally
ImgStream.Free;
end;
end;
저장 버튼 클릭시 에러는 발생하지 않지만 DB에 저장이 되지않습니다...
///////////
그래 다른방법으로
ServerMethodsUnit1에
procedure TServerMethods1.Savett(AImage: TStream; AName: string);
begin
FDConnection1.StartTransaction;
try
with FDQuery1 do
begin
Close;
SQL.Clear;
SQL.Text := 'Update Jaje_RegTbl Set 사진=:Image Where 일련번호='+#39+AName+#39;
ParamByName('Image').AsStream := AImage;
Execsql;
end;
FDConnection1.Commit;
finally
FDConnection1.Rollback;
end;
end;
앱에는
procedure TForm6.Button1Click(Sender: TObject);
var
ImgStream : TMemoryStream;
Method : TServerMethods1Client;
ANumber : string;
begin
ANumber := label1.Text;
ImgStream := TMemoryStream.Create;
Method := TServerMethods1Client.Create(U_menu.Form1.SQLConnection1.DBXConnection);
try
Image1.Bitmap.SaveToStream(ImgStream);
Method.Savett(ImgStream, ANumber);
finally
ImgStream.Free;
end;
end;
이런식으로 만들어서 저장하니 원래있던 사진은 사라지고 빈 화면만 저장이 됩니다...
교제의 로컬서버에서는 잘 되던데
DataSnap 서버에서는 안되는 건가요??
문제점 알려주시면 감사하겠습니다...!!
댓글 0
Delphi DB에 이미지 등록
2016.01.15 15:46
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
안녕하세요!
모바일로 사진을 찍은후 DataBase에 이미지를 등록하는 어플을 테스트 중인데 잘안돼서 질문드려요~~!!
한번에 개발하는 안드로이드/IOS 앱 with 델파이 고급 교제
실습) 만들어봅시다 : 사원정보 실전 앱 따라하기는 잘 되어서
참고하였습니다.
DB는 MSSQL을 사용하였고 Server 컴퓨터를 따로 사용해야해서 DataSnap을 이용하였습니다.
ServerMethodsUnit1에 Procedure을 만들고
procedure TServerMethods1.Save(AImage: TStream);
begin
FDQuery1.Edit;
(FDQuery1.FieldByName('사진') as TBlobField).LoadFromStream(AImage);
FDQuery1.Post;
FDQuery1.ApplyUpdates(0);
FDQuery1.CommitUpdates;
FDQuery1.Refresh;
end;
앱에 배포한 프로젝트의 저장 버튼을 아래와 같이 만들어주었습니다.
procedure TForm6.Button1Click(Sender: TObject);
var
ImgStream : TMemoryStream;
Method : TServerMethods1Client;
begin
ImgStream := TMemoryStream.Create;
Method := TServerMethods1Client.Create(U_menu.Form1.SQLConnection1.DBXConnection);
try
Image1.Bitmap.SaveToStream(ImgStream); //이미지는 actionlist의 카메라기능 버튼으로 사진을 찍은 이미지입니다.
Method.Save(ImgStream);
finally
ImgStream.Free;
end;
end;
저장 버튼 클릭시 에러는 발생하지 않지만 DB에 저장이 되지않습니다...
///////////
그래 다른방법으로
ServerMethodsUnit1에
procedure TServerMethods1.Savett(AImage: TStream; AName: string);
begin
FDConnection1.StartTransaction;
try
with FDQuery1 do
begin
Close;
SQL.Clear;
SQL.Text := 'Update Jaje_RegTbl Set 사진=:Image Where 일련번호='+#39+AName+#39;
ParamByName('Image').AsStream := AImage;
Execsql;
end;
FDConnection1.Commit;
finally
FDConnection1.Rollback;
end;
end;
앱에는
procedure TForm6.Button1Click(Sender: TObject);
var
ImgStream : TMemoryStream;
Method : TServerMethods1Client;
ANumber : string;
begin
ANumber := label1.Text;
ImgStream := TMemoryStream.Create;
Method := TServerMethods1Client.Create(U_menu.Form1.SQLConnection1.DBXConnection);
try
Image1.Bitmap.SaveToStream(ImgStream);
Method.Savett(ImgStream, ANumber);
finally
ImgStream.Free;
end;
end;
이런식으로 만들어서 저장하니 원래있던 사진은 사라지고 빈 화면만 저장이 됩니다...
교제의 로컬서버에서는 잘 되던데
DataSnap 서버에서는 안되는 건가요??
문제점 알려주시면 감사하겠습니다...!!