2014-10-22 5 views
4

저는 델파이에서 EMS (예 : 향후 iOS 애플리케이션 용)을 사용하는 간단한 클라이언트 서버 애플리케이션을 개발 중입니다.Delphi EMS FireDAC : EMS를 사용하여 클라이언트에서 서버로 매개 변수를 전달하는 방법은 무엇입니까?

클라이언트 장치에서 데이터 소스를 통해 데이터베이스 (MSSQL)에서 데이터를 가져 오는 EMSProviderEMSFireDACClient이 있습니다.

서버 장치에는 제 데이터베이스를 다루는 FDConnectionTFDQuery이 있습니다. 지금까지 모든 것이 잘 작동합니다.

질문 : 이제 클라이언트의 매개 변수를 서버로 전달해야하며 결과 데이터를 가져옵니다. EMS을 어떻게 사용해야합니까? EMS에서 사용할 수있는 기능이나 절차는 무엇입니까?

소스 코드와 관련해서는 모두 해당 구성 요소가 처리했습니다. 그래서 코딩 부분은 매우 적습니다.

미리 감사드립니다.

답변

2

EMS 통화는 REST 통화와 같습니다. 경로에서 직접 URL 매개 변수를 전달할 수 있습니다 (직접 처리). ID로 항목을 가져 오는 기본 구현을 참조하십시오.) 그리고 추가 쿼리 매개 변수로 전달할 수 있습니다. 요청 객체에 있습니다. 이들을 전달하려면 클라이언트에서 사용자 정의 끝점을 사용하십시오. 여기

좀 더 정보입니다 :

서버 선언 :

[ResourceSuffix('{item}')] 
procedure GetItem(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse); 

서버 구현 :

object BackendEndpointGetNote: TBackendEndpoint 
    Provider = EMSProvider1 
    Auth = BackendAuth1 
    Params = < 
    item 
     Kind = pkURLSEGMENT 
     name = 'item' 
     Options = [poAutoCreated] 
    end> 
    Resource = 'Notes' 
    ResourceSuffix = '{item}' 
end 

클라이언트 : 엔드 포인트

procedure TNotesResource1.GetItem(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse); 
var 
    LItem: string; 
begin 
    LItem := ARequest.Params.Values['item']; 
    ... 

클라이언트 구성 전화 :

BackendEndpointGetNote.Params.Items[0].Value := AID; 
    BackendEndpointGetNote.Execute; 

희망이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 클라이언트에서 요청 개체와 사용자 지정 끝점을 사용하는 방법에 대해 좀 더 자세히 설명해 주시겠습니까? 어떤예요? (나는이 주제에서 초보자이다). –

+0

다음 [link] (http://stackoverflow.com/questions/26631077/delphi-ems-firedac-cannot-open-dataset-fdmemtable)에이 문제와 관련된 다른 질문을 올렸습니다. 그 문제를 해결하도록 도와 주시겠습니까? –