나는 HTTP 클라이언트 구성 요소를 통해 통신하는 SOAP 클라이언트 프로그램과 함께 WebBroker 기반 SOAP 서버 (독립 실행 형 exe)를 사용하는 델피 7로 작성된 3 계층 응용 프로그램을 사용하고 있습니다.델파이의 연결이 끊긴 레코드 세트/데이터 세트
이것은 DataSnap 응용 프로그램이 아닙니다. 대신 서버는 SOAP 요청에 전달 된 SQL 문자열에 해당하는 ADTG 형식의 연결이 끊어진 ADO 레코드 집합으로 클라이언트에 데이터를 보냅니다. 서버는 먼저 문자열을 압축하여 Base64로 변환하여 "문자열"결과로 클라이언트에 다시 전송합니다.
반환 된 레코드 세트를 사용하여 행과 필드를 반복합니다 (예 : DataSet 구성 요소)이 VBA를 사용하여 Microsoft Access에서 수년간 프로그래밍을 해왔 기 때문에 편하게 사용할 수 있습니다. 다행히 TADODataset 구성 요소의 Recordset 속성에 직접 할당하여 QuickReport에 바인딩 할 수도 있습니다.
이제 클라이언트 프로그램을 FireMonkey로 업그레이드하여 Windows 및 OSX 용으로 컴파일하고 더 이상 Mac 환경이 아닌 ADO 레코드 세트를 사용할 수 없다고 가정합니다.
내가 보고서를 기반으로 할 수 있도록 내가 A)를 분리하여 데이터 셋 컴포넌트로, b)는 부하 "손으로"전송할 수있는 최선의 데이터 형식이 될 것입니다 무슨 FireMonkey로 변환을위한 준비에, 및 c) 가능한 경우 먼저 코드를 구성 요소에로드하지 않고 코드의 데이터를 처리합니다.
이 마지막 항목은 구성 요소를 사용하지 않고 데이터 작업을하는 데 익숙하지 않았기 때문에뿐만 아니라 사용자 인터페이스를 잠그지 않고 배경에서 데이터를 검색하기 위해 자주 스레드에서 데이터를 요청하기 때문에 중요합니다. 내가 이해하는 바와 같이, 구성 요소와 스레드는 함께 사용되지 않습니다.
앞으로 나아가는 가장 좋은 방법에 대한 조언이 있으십니까?
구성 요소 및 스레드에는 문제가 없습니다. 스레드에서 * visual * 구성 요소에 액세스하는 데 문제가 있지만 데이터 집합 구성 요소는 시각적이지 않습니다. 귀하의 질문은 상당히 광범위하고 다소 모호한 것으로 나에게 읽어 but지만 TClientDataSet을 찾고있는 것으로 보입니다. –
@KenWhite 당신 wellcome [여기] (http://chat.stackoverflow.com/rooms/129020/rad-studio-for-android) – Sami
예프. Ken 께 감사드립니다. TClientDataSet이 가장 좋은 방법 인 것 같습니다. –