Executa a SQLPathExpression anteriormente criada com as funções de utilitário cniSqlCreateReadOnlyPathExpression ou cniSqlCreateModifiablePathExpression, como 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 |
---|---|
Environment | A única árvore Ambiente para o fluxo. Esse elemento é determinado pelo intermediário 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);