cniSqlNavigatePath

Executa a SQLPathExpression anteriormente criada com as funções de utilitário cniSqlCreateReadOnlyPathExpression ou cniSqlCreateModifiablePathExpression, como definido pelo argumento sqlPathExpression.

Sintaxe

CciElement* cniSqlNavigatePath(
	int*                  returnCode,
	CciSqlPathExpression* sqlPathExpression,
	CciMessage*           inputMessageRoot,
	CciMessage*           inputLocalEnvironment,
	CciMessage*           inputExceptionList,
	CciMessage*           outputMessageRoot
	CciMessage*           outputLocalEnvironment,
CciMessage* outputExceptionList);

Parâmetros

returnCode (saída)
Uma entrada de ponteiro NULL significa que o nó definido pelo usuário não irá lidar com erros. Quaisquer exceções lançadas durante a execução desta chamada serão lançadas novamente para o próximo nó acima no fluxo. Se a entrada não for NULL, a saída significará o status de êxito da chamada. Se uma exceção ocorrer durante a execução, *returnCode será definido como CCI_EXCEPTION na saída. Uma chamada para cciGetLastExceptionData fornecerá detalhes da exceção. Se um parâmetro sqlPathExpression inválido foi transmitido, o returnCode será configurado como CCI_INV_SQL_EXPR_OBJECT. Se um parâmetro CciMessage* inválido foi transmitido, o returnCode será configurado como CCI_INV_MESSAGE_OBJECT. Se o elemento não pôde ser navegado ou criado, o returnCode será configurado como CCI_PATH_NOT_NAVIGABLE.
sqlPathExpression (entrada)
Especifica o objeto SQLPathExpression a ser executado como retornado pela função cniCreateReadOnlyPathExpression ou cniCreateModifyablePathExpression. Esse parâmetro não pode ser NULL.
inputMessageRoot (entrada)
A mensagem representando a mensagem de entrada. Esse parâmetro não pode ser NULL.
inputLocalEnvironment (entrada)
A mensagem representando o ambiente local de entrada. Esse parâmetro não pode ser NULL.
inputExceptionList (entrada)
A mensagem representando a lista de exceções de entrada. Esse parâmetro não pode ser NULL.
outputMessageRoot (entrada)
A mensagem representando a mensagem de saída. Este parâmetro pode ser NULL.
outputLocalEnvironment (entrada)
A mensagem representando o ambiente local de saída. Este parâmetro pode ser NULL.
outputExceptionList (entrada)
A mensagem representando a lista de exceções de saída. Este parâmetro pode ser NULL.

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.

Valores de Retorno

Se o caminho for navegado com êxito, o endereço do elemento de sintaxe será retornado. No entanto, se o caminho não for navegável, então um valor zero (CCI_NULL_ADDR) será retornado e o parâmetro returnCode indicará o motivo do erro.

Exemplo

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);
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
as08033_