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 |
---|---|
Ambiente | A única árvore Ambiente para o fluxo. Essa é determinada pelo intermediário e não é necessário especificá-la 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 Nota: InputRoot.Properties é o
primeiro filho de InputRoot, denominado "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 |
OutputDestinationList | Sinônimo de OutputLocalEnvironment |
Todas as outras regras sobre a navegabilidade e validade de caminhos reais estão de acordo com a documentação Referência de Campo ESQL.
Assumindo que foi criada anteriormente uma SQLPathExpression ( consulte o exemplo para cniSqlCreateReadOnlyPathExpression ou cniSqlCreateModifiablePathExpression), poderíamos utilizar o seguinte código para navegar no elemento de destino.
CciElement* targetElement = cniSqlNavigatePath( NULL, ((NODE_CONTEXT_ST *)context)->pathExpression, message, destinationList, exceptionList, NULL, /*não foi feita referência a nenhuma árvore de saída*/ NULL, NULL);