参数绑定问题跪求!
Gorky 2005-11-22 11:17:09 if (m_retcode == SQL_SUCCESS || m_retcode ==SQL_SUCCESS_WITH_INFO)
{
m_retcode = ::SQLBindParameter(m_hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlBulletinID,PARAM_INPUT_LEN,&cbInput);
// m_retcode = ::SQLBindParameter(m_hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlTitle,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlSendTime,PARAM_INPUT_LEN,&cbInput);
/* m_retcode = ::SQLBindParameter(m_hstmt,4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlInvaidTime,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,5,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlSendStaffNo,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,6,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlAffixPath,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,7,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlGrade,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,8,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlBulletinType,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,9,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlServerPath,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,10,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlClassID,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,11,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlOperationID,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,12,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlCallCauseID,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,13,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlrelKnowledgeIds,PARAM_INPUT_LEN,&cbInput);
m_retcode = ::SQLBindParameter(m_hstmt,14,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_INPUT_LEN,0,sqlisPopup,PARAM_INPUT_LEN,&cbInput);
*/ m_retcode = ::SQLBindParameter(m_hstmt,3,SQL_PARAM_OUTPUT,SQL_C_CHAR,SQL_VARCHAR,PARAM_OUTPUT_LEN,0,sqlRet,PARAM_OUTPUT_LEN,&cbOutput);
m_retcode = ::SQLExecDirect( m_hstmt, (PUCHAR)szSql, SQL_NTS );
sprintf(tmp,"调用存储过程m_retcode= %d\n",m_retcode);
WriteTrace(tmp);
}
数据库为ORACLE,当我绑定一个参数插入数据库(调用存储过程)时候就可以成功插入。
但如果绑定两个或者两个以上的参数时数据库就出现了:“ORA-01461: can bind a LONG value only for insert into a LONG column”异常。存储过程中的输入参数我根据程序中的参数也做了相应的改动,是一一匹配的。
拜托众兄弟能给解决一下!