请教,关于执行动态SQL语句时的参数绑定问题,在有输入输出参数时,如何组合使用SQlPrepare,sqlbindparameters,sqlexcute,望高手解答,最好能给我举一个例子,谢谢!

解决方案 »

  1.   

    SQLHSTMT hStmt; // 语句句柄
    SQLRETURN retCode; // 返回结果// 创建语句句柄hStmt
    ...
    // 准备语句
    retCode = ::SQLPrepare(hStmt, (SQLCHAR*)"...", SQL_NTS);
    if(!SQL_SUCCEEDED(retCode))
    {
    // 准备数据库语句失败
    return;
    }// 如果要执行的数据库语句中有输入或者输出参数
    // 对于一个存储过程,调用语句为call xxx(?,?,...)
    SDWORD cb1 = SQL_NTS;
    retCode = ::SQLBindParameter(hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR,
         nLen, 0, "dskdk", 0, &cb1);// 邦定一个字符串类型的数据,绑定其他类型的数据请参考帮助
    ...
    // 绑定了所有参数后,调用SQLExecute
    retCode = ::SQLExecute(hStmt);