参数绑定问题跪求!

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”异常。存储过程中的输入参数我根据程序中的参数也做了相应的改动,是一一匹配的。
拜托众兄弟能给解决一下!
...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuwei200000 2005-11-22
  • 打赏
  • 举报
回复
up
快乐鹦鹉 2005-11-22
  • 打赏
  • 举报
回复
http://www.itpub.net/showthread.php?threadid=196421&pagenumber=
快乐鹦鹉 2005-11-22
  • 打赏
  • 举报
回复
http://www.cnblogs.com/liubiqu/archive/2005/04/08/134017.aspx

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧