다음을 통해 공유


ICommandTree::GetCommandTree 메서드(cmdtree.h)

참고

인덱싱 서비스는 Windows XP에서 더 이상 지원되지 않으며 Windows 8 현재 사용할 수 없습니다. 대신 클라이언트 쪽 검색에 Windows Search 를 사용하고 서버 쪽 검색에 Microsoft Search Server Express 를 사용합니다.

ICommandTree::GetCommandTree 메서드는 추가된 모든 사후 처리 작업을 포함하여 현재 명령을 트리로 에코합니다.

구문

HRESULT GetCommandTree(
  [out] DBCOMMANDTREE **ppRoot
);

매개 변수

[out] ppRoot

명령 개체는 명령 트리에 대한 메모리를 할당하고 이 메모리에 주소를 반환합니다. 소비자는 명령 트리가 더 이상 필요하지 않을 때 한 번에 하나의 노드인 IMalloc::Free를 사용하여 이 메모리를 해제합니다. 오류가 발생하는 경우 공급자는 ppRoot 를 null 포인터로 설정합니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
DB_S_ERRORSINTREE
공급자는 명령 트리를 빌드하는 동안 이전에 ICommandText::SetCommandText 에서 설정한 명령 텍스트에서 심각하지 않은 오류를 발견했습니다.
E_FAIL
공급자 관련 오류가 발생했습니다.
E_INVALIDARG
ppRoot 매개 변수는 null 포인터였습니다.
E_OUTOFMEMORY
공급자가 명령 트리를 반환할 충분한 메모리를 할당할 수 없습니다.
DB_E_CANTTRANSLATE
공급자는 이전에 ICommandText::SetCommandText 에서 트리로 설정한 명령 텍스트를 나타낼 수 없습니다.

설명

반환된 트리는 IQuery::AddPostProcessing에 대한 후속 호출에 의해 수정된 대로 ICommandTree::SetCommandTree 또는 ICommandText::SetCommandText의 마지막 호출에 의해 설정된 명령을 정확하게 반영합니다. 명령이 트리로 저장되면 반환된 트리는 명령 개체에 저장된 트리의 복사본입니다. 트리 노드가 텍스트와 함께 전달된 경우 텍스트로도 에코됩니다. 명령이 텍스트로 저장되는 경우 공급자는 텍스트의 "탐색 가능한" 명령 트리 표현을 반환해야 합니다. 이 표현은 최적화된 형식일 필요는 없습니다. 공급자가 전체 표현을 만들 수 없는 경우 명령 트리는 단일 텍스트 노드로 구성될 수 있습니다. 예를 들어 트리를 DBOP_SQL_select 노드로 나타낼 수 있고 공급자가 해당 노드를 지원하는 경우 해당 형식으로 반환되어야 합니다. 그러나 트리를 DBOP_SQL_select 노드로 나타낼 수 없지만, 비미사적 명령 트리(즉, DBOP_text_command 이외의 형식)에서 나타낼 수 있는 경우 공급자는 트리를 해당 비사상 트리로 반환해야 합니다. 공급자는 트리가 지원하는 유일한 명령 노드인 경우에만 트리를 간단한 DBOP_text_command 노드로 반환할 수 있습니다. 그렇지 않으면 유효한 사소한 탐색 가능 트리를 반환하거나 해당 트리에 텍스트를 나타낼 수 없는 경우 DB_E_CANTTRANSLATE 반환해야 합니다. 이때 공급자는 바인딩과 같은 불필요한 유효성 검사를 수행해서는 안 되지만 공급자를 구문 분석하는 과정에서 트리 빌드 시 심각하지 않은 오류가 발견되면 트리에 오류 정보를 넣고 DB_S_ERRORSINTREE 반환해야 합니다.

이 메서드는 텍스트의 공급자의 최적화된 내부 변환( DBCOMMANDTREE 구조와 다를 수 있음)을 (텍스트가 아닌) 트리 작업으로 표시하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 cmdtree.h

추가 정보

ICommandTree