cniSqlNavigatePath

Ejecuta el SQLPathExpression creado anteriormente con las funciones 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 maneja errores. Las excepciones emitidas durante la ejecución de esta llamada se vuelven a emitir en el nodo ascendente siguiente del flujo. Si la entrada no es NULL, la salida significa el estado de éxito de la llamada. Si se produce una excepción durante la ejecución, *returnCode se establece en CCI_EXCEPTION en la salida. Una llamada a cciGetLastExceptionData proporciona los detalles de la excepción. Si se ha pasado un parámetro sqlPathExpression no válido, returnCode se establece en CCI_INV_SQL_EXPR_OBJECT. Si se ha pasado un valor CciMessage* no válido, returnCode se establece 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 a los que se accede.

Nombre de correlación Datos accedidos
Environment El árbol Environment exclusivo para el flujo. Este elemento lo determina el intermediario y no es necesario especificarlo con esta 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 (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 que es compatible con versiones anteriores
OutputDestinationList Sinónimo de OutputLocalEnvironment que es compatible con versiones anteriores

Todas las demás normas sobre la navegabilidad y validez real de las vías de acceso se definen en Nombres de correlaciones.

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 haya creado un SQLPathExpression (consulte el ejemplo para cniSqlCreateReadOnlyPathExpression o cniSqlCreateModifiablePathExpression), podría utilizar el código siguiente para navegar al elemento de destino.

 CciElement* targetElement = cniSqlNavigatePath(
                           NULL,
                          ((NODE_CONTEXT_ST *)context)->pathExpression,
                           message,
                           localEnvironment,
                           exceptionList,
                           NULL, /* no hacer referencia a ningún árbol de salida*/
                           NULL,
                           NULL);
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:56:14

as08033_