소프트웨어 디자인 : ClientDataset 및 소켓이있는 Tier 2 응용 프로그램

StackOverflow https://stackoverflow.com/questions/1244465

  •  12-09-2019
  •  | 
  •  

문제

다음과 같이 Tier 2 응용 프로그램을 작성하는 작업이 있습니다.

MSSQL 데이터베이스 <-> Server <-> 클라이언트 (N. N.

클라이언트는 데이터를 서버로 보냅니다. 서버는 데이터베이스에서 물건을 선택한 다음 클라이언트로 다시 보냅니다. 현재 Records 및 SendDatatoSocket (URL은 아래)로 수행하고 있습니다.

서버에서 소켓을 통해받은 데이터를 사용하여 클라이언트에서 tdbgrid를 사용하고 싶습니다. 지금은 다음과 같이됩니다.

섬기는 사람:db-> adoQuery-> dataSetProvider-> ClientDataset-> SavetOstream (MemoryStream)

고객:clientDatAset-> loadFromStream (MemoryStream) -> DataSource-> dbgrid

나는 사용 중입니다 SendDatatoSocket (Socket : Tcustomwinsocket; 데이터 : 포인터; DataSize : Integer; Buffer : TmemoryStream) : Integer;

따라서 제가하고 싶은 것은 서버 측의 ClientDataset이 LoadFromStream을 사용하여 스트림을 읽는 클라이언트에게 생성하는 스트림을 보내는 것입니다. SendDatatoSocket이 여기서 실행 가능합니까?

내가 의미하는 바를 얻기를 바랍니다.

도움이 되었습니까?

해결책

예, 클라이언트가 데이터를 수신 할 준비가 된 한. 그러나 보내기 전에 메모리 스트림을 압축하려는 데이터의 양과 유형에 따라 잘 작동합니다. 이전 프로젝트에서 비슷한 접근 방식을 수행했지만 사용했습니다. 시냅스 데이터 전송의 경우 ... 그러나 기본 개념은 동일했습니다.

Zlib 장치 (CodeGear에 포함)에는 압축 및 감압을 제공하는 스트림 주변의 간단한 래퍼가 포함되어 있습니다. 와이어의 양쪽을 제어하기 때문에 압축은 와이어 시간을 줄임으로써 성능을 향상시킬 가능성이 높습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top