자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 델파이 xe5 - 안드로이드 - datasnap 개발시
2014.05.07 17:59
안녕하세요.
델파이 xe5 버전으로 안드로이드 스마트폰에서 작동할 datasnap 서버와 클라이언트 프로그램을 개발하고 있습니다.
서버쪽 Sqlconnection - SqlDataset로 연결되어 있으며 메소드는
function TServerMethods1.GetUserName(name, grade, ban : String) : TDataSet;
begin
try
sqlUser.Close;
sqlUser.Params[0].AsString := name;
sqlUser.Params[1].AsString := grade;
sqlUser.Params[2].AsString := ban;
sqlUser.Open;
Result := sqlUser;
except
on E : Exception do
begin
Result := nil;
sqlUser.Close;
end;
end;
end;
클라이언트 쪽 Sqlconnection - SqlServerMethod-DataSetProvider - ClientDataSet
|
+-> ServerMethodname에 GetUserName 지정
로 연결하여 원격지 데이터를 읽어 오도록 하는 내용인데 스마트폰에서
ClientDataSet1.Open;
Name := ClientDataSet1.FieldByName('name').AsString;
를 실행하면 "Exception in safecall method" 메시지 나오면서 멈춥니다.
Firemonkey 델파이 xe5 - 안드로이드 - datasnap 개발시
2014.05.07 17:59
안녕하세요.
델파이 xe5 버전으로 안드로이드 스마트폰에서 작동할 datasnap 서버와 클라이언트 프로그램을 개발하고 있습니다.
서버쪽 Sqlconnection - SqlDataset로 연결되어 있으며 메소드는
function TServerMethods1.GetUserName(name, grade, ban : String) : TDataSet;
begin
try
sqlUser.Close;
sqlUser.Params[0].AsString := name;
sqlUser.Params[1].AsString := grade;
sqlUser.Params[2].AsString := ban;
sqlUser.Open;
Result := sqlUser;
except
on E : Exception do
begin
Result := nil;
sqlUser.Close;
end;
end;
end;
클라이언트 쪽 Sqlconnection - SqlServerMethod-DataSetProvider - ClientDataSet
|
+-> ServerMethodname에 GetUserName 지정
로 연결하여 원격지 데이터를 읽어 오도록 하는 내용인데 스마트폰에서
ClientDataSet1.Open;
Name := ClientDataSet1.FieldByName('name').AsString;
를 실행하면 "Exception in safecall method" 메시지 나오면서 멈춥니다.
혹시 제 경험상 모바일에서 Datasnap에서 Query후 Dataset을 받을때 Decimal이나 Numeric등 소숫점
이하는 문제가 되더라구요. *(전체)가 아닌 필요한 필드를 지정하든지 타입CAST해서 문제를 해결
했었습니다.