cniSqlNavigatePath

执行先前使用 cniSqlCreateReadOnlyPathExpressioncniSqlCreateModifiablePathExpression 实用程序函数创建的 SQLPathExpression(如 sqlPathExpression 参数中定义的那样)。

语法

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

参数

returnCode(输出)
NULL 指针输入表示用户定义的节点不要处理错误。在执行此调用期间别的任何异常都重新抛出到流中的下一个上 行节点。如果输入不是 NULL,则输出表示调用的成功状态。如果执行期间发生异常,则 *returnCode 设置为输出上的 CCI_EXCEPTION。如果调用 cciGetLastExceptionData,则将提供异常的详细信息。如果传递了无效的 sqlPathExpression 参数,则 returnCode 将设置为 CCI_INV_SQL_EXPR_OBJECT。如果传递了无效的 CciMessage* 值,则 returnCode 将设置为 CCI_INV_MESSAGE_OBJECT。如果无法浏览至此元素或对它进行创建,则 returnCode 将设置为 CCI_PATH_NOT_NAVIGABLE。
sqlPathExpression(输入)
指定要执行的 SQLPathExpression 对象(如 cniCreateReadOnlyPathExpressioncniCreateModifyablePathExpression 函数所返回的那样)。该参数不能为 NULL。
inputMessageRoot(输入)
此消息表示输入消息。该参数不能为 NULL。
inputLocalEnvironment(输入)
此消息表示输入本地环境。该参数不能为 NULL。
inputExceptionList(输入)
此消息表示输入异常列表。该参数不能为 NULL。
outputMessageRoot(输入)
此消息表示输出消息。该参数可以为 NULL。
outputLocalEnvironment(输入)
此消息表示输出本地环境。该参数可以为 NULL。
outputExceptionList(输入)
此消息表示输出异常列表。该参数可以为 NULL。

下表显示了 ESQL 路径表达式中所接受的相关名和被访问数据之间的映射。

相关名 被访问数据
Environment 流的单个 Environment 树。它将由代理确定,并且无需通过此 API 指定。
InputLocalEnvironment cniSqlNavigatePath 的 inputLocalEnvironment 参数
OutputLocalEnvironment cniSqlNavigatePath 的 outputLocalEnvironment 参数
InputRoot cniSqlNavigatePath 的 inputMessageRoot 参数
InputBody InputRoot 的最后一个子代
InputProperties InputRoot.Properties
注: InputRoot.Properties 是 InputRoot 的第一个子代,称为“Properties”
OutputRoot cniSqlNavigatePath 的 outputMessageRoot 参数
InputExceptionList cniSqlNavigatePath 的 inputExceptionList 参数
OutputExceptionList cniSqlNavigatePath 的 outputExceptionList 参数
Database cniCreateReadOnlyPathExpressioncniCreateModifyablePathExpression 的 dataSourceName 参数所标识的 ODBC 数据源
InputDestinationList InputLocalEnvironment 的同义词
OutputDestinationList OutputLocalEnvironment 的同义词

有关路径的实际可浏览性和有效性的所有其他规则,请参阅 ESQL 字段引用文档。

返回值

如果成功浏览路径,则会返回语法元素的地址。然而,如果路径不是可浏览的,则会返回值零(CCI_NULL_ADDR),并且 returnCode 参数会表明发生错误的原因。

示例

假设我们已预先创建了 SQLPathExpression(请参阅 cniSqlCreateReadOnlyPathExpressioncniSqlCreateModifiablePathExpression 的示例),则可以使用以下代码浏览至目标元素。

 CciElement* targetElement = cniSqlNavigatePath(
                           NULL,
                          ((NODE_CONTEXT_ST *)context)->pathExpression,
                           message,
                                                        destinationList, 
                                                        exceptionList, 
                           NULL, /*we do not reference any output trees*/
                           NULL,
                           NULL);
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as08033_