2013-11-27 3 views
0

을 통해 blob로 SQL 결과 집합을 반환합니다. tcp를 통해 원격 시스템에 쉽게 연결할 수 있으므로 편리합니다. 단점은 모든 연결에 대한 왕복입니다. 씩 클라이언트를 시작하면 많은 데이터 세트가 수천 줄의 일부가 필요합니다. 이는 사용자가 1 번 작업을 수행하기 전에 필요한 데이터입니다.ODBC를 통해 ODBC를 사용하여 ODBC

내가하고 싶은데요 하나의 왕복 여행 의미와 함께 반환하는 단일 개체 (blob 아마도)를 만들 수 있습니다 결과 집합을 수령 즉시 구문 분석 할 수있는 테이블/BLOB/개체로 압축.

나는 이것을하기위한 몇 가지 못 생기는 방법을 생각할 수있다. 우아한 무엇인가는 위대 할 것이다.

+0

나는 그것이 모두 당신의 C++ 프로그램을 어떻게 코딩하는지에 달려 있다고 생각한다. CRecordSet과 같은 것을 사용한다면, 수천 번의 왕복이있을 것입니다. 그러나, 만약 당신이 무엇을 알고 있다면 (예를 들어, table1에서 Col1을 선택하십시오.) 다음 ODBC Api의 최소 집합을 사용할 수 있으며 라이브러리는 불필요한 호출을하지 않습니다. – cha

+0

ODBC를 모든 언어에서 사용하면 Execute) 다음에 각 행에 대해 하나의 호출 인 Fetch (루프에서)를 여러 번 호출합니다. 문제는이를 피하기 위해 데이터 패키징에 관한 것입니다. –

+0

SQLFetch()가 한 번에 여러 행을 검색 할 수 있도록 행 집합 크기를 늘릴 수 있습니다. 당신의 코드는 무엇입니까? – cha

답변

0

SQL Server라고 가정합니다. forwardonly 커서를 사용하면 각 SQLFetch는 서버로 왕복하지 않아도됩니다. 오랜 시간이 걸릴 것으로 판단되면 ODBC API를 호출하는 방법을 검토해 볼 가치가 있습니다. 일반적으로 전달 전용 커서의 가져 오기는 네트워크 처리 속도에 의해 제한되며 필요한 왕복은 TCP 확인 일뿐입니다.

+0

그럼 SQLFetchScroll()을 사용하여 많은 행을 검색 할 수 있지만 일부 서버 측의 영리함을 사용하여 압축하는 것에 대해 궁금합니다. –

관련 문제