메뉴 건너뛰기

넷서버 사용 팁/강좌

ch 5. 비즈니스오브젝트를 클라이언트에서 사용하기

이번장에서는 서버에서 구현된 비즈니스오브젝트를 클라이언트에서 불러서 사용하는 것을 구현합니다.

서버는 넷서버데모에 포함된 BDE서버를 사용합니다.


1. 먼저 서버를 시작합니다.

2. 델파이에서 새로운 프로젝트를 시작하고 프로젝트를 boclient 유닛을 uBoClient로 저장합니다.

3. 폼에 TRequest, TClientDelphi를 놓고 TRequest.ClientEngine을 TClientDelphi와 연결합니다.

4. 폼에 버튼2개와 EditBox그리고 dbgrid를 놓습니다.

5. TTableman와 TdataSource를 폼에 놓고 TdataSource.Dataset에 TTableman을 연결합니다.

6. dbgrid와 TtableMan을 연결합니다.

7. editBox.Text에서 디폴트BusinessObject로 ServerInfo("my client data")를 입력합니다.

8. Button1.OnClick에 다음의 코드를 구현합니다.

 

Request1.Open;

Button2.Enabled := Request1.Connected;

 

9. Button2.OnClicck에 다음을 구현합니다.

 

TableMan1.Params.Clear;

Tableman1.BusinessObject := edit1.Text;

Tableman1.Open;

TableMan.params는 추가적인 파라메타를 전달할 때 사용합니다. Tableman.RemoteData := true; 대신 TableMan.Open 도 가능합니다.

 

10. 프로그램을 실행하고 Button1과 Button2를 차례로 클릭합니다.

 

설명:

BusinessObject는 서버에서 구현된 클라이언트를 호출합니다.

위의 예에서 ServerInfo는 서버에서 구현된 BusinessObject항목의 이름이며 ("MyServerInfo", 123)은 ServerInfo와 함께 전달하는 파라메타입니다.

내부적으로 자동으로 함수명과 파라메타를 파싱하여 ServerInfo에 해당하는 BusinessObject를 호출합니다.

서버에서 TBOManager에서 BOItem의 OnExecute를 보면 아래와 같이 구현이 됩니다.

function TForm1.BOManager1BOItems0Execute(Sender: TBOItem; aUser: TnsUser;

  sParams: TStrings; aParams, aResult: TnsParams; var aDataset: TDataSet;

  var AutoFreeDataset: Boolean): Boolean;

sparams에서 ServerInfo(...)에서 괄호내의 파라메타를 배열형태로 전달받습니다.

0- My ServerInfo

1- 123

aParams는 TTableMan.params로 전달된 파라메타를 받습니다. Blob나 다른 형태로 전달할 때 유용합니다.

 

위로