执行存储过程象死机了一样,为什么?
BOOL CDBInfo::ExecPro(SQLHDBC hdbc,int dayParam,int areaParam)
{
//char nsql[1024];
//unsigned char* statement;
SQLRETURN retcode;
HSTMT hstmt = SQL_NULL_HANDLE;
int dayCount;
int area;
SQLINTEGER cbDayCount = 0,cbArea = 0;
retcode = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
if((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
TRACE("分配hstmt句柄失败!错误代码%d\n",retcode);
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
hstmt = 0;
return false;
}
//sprintf(nsql,"{call procGetMGQYUser(?, ?)}",procedureName);
//statement = (unsigned char*)nsql;
retcode = SQLPrepare(hstmt,(unsigned char*)"{call procGetMGQYUser(?, ?)}" , SQL_NTS);
if((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
TRACE("执行sql语句失败!错误代码%d\n",retcode);
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
hstmt = 0;
return false;
}
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER,0, 0, &dayCount, 0, &cbDayCount);
SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER,0, 0, &area, 0, &cbArea);
dayCount = dayParam;
area = areaParam;
retcode = SQLExecute(hstmt);
if((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
TRACE("执行sql语句失败!错误代码%d\n",retcode);
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
hstmt = 0;
return false;
}
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
hstmt = 0;
return true;
}
就这句等了n长时间,可是在sql分析器里运行改存储过程的时间不长啊
retcode = SQLExecute(hstmt);
为什么?