cniSqlNavigatePath

Ejecuta el SQLPathExpression creado anteriormente con las funciones de programa de utilidad cniSqlCreateReadOnlyPathExpression o cniSqlCreateModifiablePathExpression, según la definición del argumento sqlPathExpression.

Sintaxis

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

Parámetros

returnCode (salida)
Una entrada de puntero NULL significa que el nodo definido por el usuario no desea tratar los errores. Las excepciones emitidas durante la ejecución de esta llamada se volverán a emitir en el nodo ascendente siguiente del flujo. Si la entrada no es NULL, la salida significará el estado de éxito de la llamada. Si se produce una excepción durante la ejecución, *returnCode se establecerá en CCI_EXCEPTION en la salida. Una llamada a cciGetLastExceptionData proporcionará los detalles de la excepción. Si se ha pasado un parámetro sqlPathExpression no válido, returnCode se establecerá en CCI_INV_SQL_EXPR_OBJECT. Si se ha pasado un valor CciMessage* no válido, returnCode se establecerá en CCI_INV_MESSAGE_OBJECT. Si no se ha podido ir hasta el elemento o no se ha podido crear, returnCode se establece en CCI_PATH_NOT_NAVIGABLE.
sqlPathExpression (entrada)
Especifica el objeto SQLPathExpression a ejecutar, tal como lo ha devuelto la función cniCreateReadOnlyPathExpression o cniCreateModifyablePathExpression. Este parámetro no puede ser NULL.
inputMessageRoot (entrada)
El mensaje que representa el mensaje de entrada. Este parámetro no puede ser NULL.
inputLocalEnvironment (entrada)
El mensaje que representa el entorno local de entrada. Este parámetro no puede ser NULL.
inputExceptionList (entrada)
El mensaje que representa la lista de excepciones de entrada. Este parámetro no puede ser NULL.
outputMessageRoot (entrada)
El mensaje que representa el mensaje de salida. Este parámetro puede ser NULL.
outputLocalEnvironment (entrada)
El mensaje que representa el entorno local de salida. Este parámetro puede ser NULL.
outputExceptionList (entrada)
El mensaje que representa la lista de excepciones de salida. Este parámetro puede ser NULL.

La tabla siguiente muestra la correlación entre los nombres de correlación aceptados en la expresión de vía de acceso ESQL y los datos accedidos.

Nombre de correlación Datos accedidos
Environment El árbol Environment exclusivo para el flujo. Esto lo determina el intermediario y no es necesario especificarlo a través de este API.
InputLocalEnvironment Parámetro inputLocalEnvironment de cniSqlNavigatePath
OutputLocalEnvironment Parámetro outputLocalEnvironment de cniSqlNavigatePath
InputRoot Parámetro inputMessageRoot de cniSqlNavigatePath
InputBody Último hijo de InputRoot
InputProperties InputRoot.Properties
Nota: InputRoot.Properties es el primer hijo de InputRoot, denominado "Properties"
OutputRoot Parámetro outputMessageRoot de cniSqlNavigatePath
InputExceptionList Parámetro inputExceptionList de cniSqlNavigatePath
OutputExceptionList Parámetro outputExceptionList de cniSqlNavigatePath
Database Origen de datos ODBC identificado por el parámetro dataSourceName en cniCreateReadOnlyPathExpression o cniCreateModifyablePathExpression
InputDestinationList Sinónimo de InputLocalEnvironment
OutputDestinationList Sinónimo de OutputLocalEnvironment

Todas las demás normas sobre la navegabilidad y validez real de las vías de acceso se basan en la documentación ESQL Field Reference.

Valores de retorno

Si la vía de acceso se recorre satisfactoriamente, se devuelve la dirección del elemento de sintaxis. De lo contrario, se devuelve el valor cero (CCI_NULL_ADDR) y el parámetro returnCode indica el motivo del error.

Ejemplo

Suponiendo que anteriormente hemos creado SQLPathExpression (vea el ejemplo para cniSqlCreateReadOnlyPathExpression o cniSqlCreateModifiablePathExpression), podríamos utilizar el siguiente código para navegar al elemento de destino.

 CciElement* targetElement = cniSqlNavigatePath(
                           NULL,
                          ((NODE_CONTEXT_ST *)context)->pathExpression,
                           message,
                           destinationList,
                           exceptionList,
                           NULL, /*no se hace referencia a ningún árbol de salida*/
                           NULL,
                           NULL);
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as08033_