CREATE PROCEDURE HasAccount
@Account varchar(50),
@out bit output
......这是存储过程的wsprintf(sqlCmd, "EXEC HasAccount '%s', ?", account);rc = SQLBindParameter(hstmt, 2, SQL_PARAM_OUTPUT, SQL_C_CHAR, SQL_C_BIT, 1, 0, &result, 0, (SQLINTEGER*)&cb);rc = SQLExecDirect(hstmt, (SQLCHAR*)sqlCmd, SQL_NTS);这样运行结果是错的,请问如何设置output参数

解决方案 »

  1.   

    wsprintf(sqlCmd, "DECLARE @aa bit EXEC HasAccount '%s', @aa output", account);
      

  2.   


    谢谢毛毛,但我是我要如何才能在程序中读出@aa呢??我用ODBC API在调用存储过程,我要知道@aa的值!!
      

  3.   

    你不是用rc = SQLBindParameter(hstmt, 2, SQL_PARAM_OUTPUT, SQL_C_CHAR, SQL_C_BIT, 1, 0, &result, 0, (SQLINTEGER*)&cb);
    了吗那这样的话,是不是就能获得那个output的值阿??试试哦
      

  4.   

    不行呀!!
    rc = SQLExecDirect(hstmt, (SQLCHAR*)sqlCmd, SQL_NTS);
    这句是没有问题了,但我还是得不到output参数的值。
      

  5.   

    SQL_C_BIT改成SQL_BIT试一下,  后面表示的是sql server中的数据类型。