Use esta função para executar a SQLPathExpression que você criou chamando as funções de utilitário cniSqlCreateReadOnlyPathExpression ou cniSqlCreateModifiablePathExpression, conforme definido pelo argumento sqlPathExpression.
CciElement* cniSqlNavigatePath(
int* returnCode,
CciSqlPathExpression* sqlPathExpression,
CciMessage* inputMessageRoot,
CciMessage* inputLocalEnvironment,
CciMessage* inputExceptionList,
CciMessage* outputMessageRoot
CciMessage* outputLocalEnvironment,
CciMessage* outputExceptionList);
A tabela a seguir mostra o mapeamento entre os nomes de correlação aceitos na expressão de caminho ESQL e os dados acessados.
Nome de Correlação | Dados Acessados |
---|---|
Ambiente | A única árvore Ambiente para o fluxo. Esse elemento é determinado pelo broker e não é necessário especificá-lo através dessa API. |
InputLocalEnvironment | Parâmetro inputLocalEnvironment para cniSqlNavigatePath |
OutputLocalEnvironment | Parâmetro outputLocalEnvironment para cniSqlNavigatePath |
InputRoot | Parâmetro inputMessageRoot para cniSqlNavigatePath |
InputBody | Último filho de InputRoot |
InputProperties | InputRoot.Properties (InputRoot.Properties é o primeiro filho de InputRoot, chamado "Properties") |
OutputRoot | Parâmetro outputMessageRoot para cniSqlNavigatePath |
InputExceptionList | Parâmetro inputExceptionList para cniSqlNavigatePath |
OutputExceptionList | Parâmetro outputExceptionList para cniSqlNavigatePath |
Database | Origem de dados ODBC identificada pelo parâmetro dataSourceName para cniCreateReadOnlyPathExpression ou cniCreateModifyablePathExpression |
InputDestinationList | Sinônimo de InputLocalEnvironment que é compatível com versões anteriores |
OutputDestinationList | Sinônimo de OutputLocalEnvironment que é compatível com versões anteriores |
Todas as outras regras sobre a navegabilidade e validade de caminhos reais estão definidas em Nomes de Correlação.
Supondo que você tenha criado anteriormente uma SQLPathExpression (consulte o exemplo para cniSqlCreateReadOnlyPathExpression ou cniSqlCreateModifiablePathExpression), seria possível utilizar o seguinte código para navegar no elemento de destino.
CciElement* targetElement = cniSqlNavigatePath(
NULL,
((NODE_CONTEXT_ST *)context)->pathExpression,
message,
localEnvironment,
exceptionList,
NULL, /* não referenciar nenhuma árvore de saída*/
NULL,
NULL);