Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » UltraLite - C 和 C++ 编程 » 应用程序开发 » UltraLite C++ 应用程序开发 » 使用 SQL 语句创建和修改数据

 

使用 SELECT 检索数据

执行 SELECT 语句可从 UltraLite 数据库检索信息并处理返回的结果集。

前提条件

执行此任务没有前提条件。

 任务
  1. 使用以下代码声明所需的变量:

    ULPreparedStatement * prepStmt;
    ULResultSet * resultSet;
  2. 准备要执行的 SQL 语句。

    以下代码准备要执行的 SELECT 语句:

    prepStmt = conn->PrepareStatement("SELECT MyColumn1 FROM MyTable");
  3. 准备语句时检查错误。

    例如,以下代码适用于检查 SQL 语法错误:

    if( prepStmt == NULL ) {
        const ULError * ulerr;
        ulerr = conn->GetLastError();
        // write code to handle the error
        return;
    }
  4. 执行 SQL,并返回可用于移动查询结果的结果集对象。

    resultSet = prepStmt->ExecuteQuery();
    if( resultSet == NULL ) {
        const ULError * ulerr;
        ulerr = conn->GetLastError();
        // write code to handle the error
        prepStmt->Close();
        return;
    }
  5. 通过调用 Next 方法来遍历行。以字符串形式存储结果并将其存储在缓冲区中。

    Next 方法可移动到结果集的下一行。如果该调用返回 true,ULResultSet 对象定位在某一行上;否则,如果该调用返回 false,所有的行都已遍历。

    while( resultSet->Next() ) {
        char buffer[ 100 ];
        resultSet->GetString( 1, buffer, 100 );
        printf( "MyColumn = %s\n", buffer );
    }
  6. 清理预准备语句和结果集对象资源。

    调用 Close 方法后,不能再访问预准备语句对象。

    resultSet->Close();
    prepStmt->Close();

结果

SELECT 语句的结果中包含一个字符串,该字符串随后会输出到命令提示符处。

 另请参见