参数绑定问题跪求!
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”异常。存储过程中的输入参数我根据程序中的参数也做了相应的改动,是一一匹配的。
拜托众兄弟能给解决一下!
{
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”异常。存储过程中的输入参数我根据程序中的参数也做了相应的改动,是一一匹配的。
拜托众兄弟能给解决一下!
...全文
相关推荐
解决Spring Mvc中对象绑定参数重名的问题
最近在工作中遇到了参数绑定的一个问题,发现网上这方面的资料较少,索性自己来总结下,下面这篇文章主要给大家介绍了关于如何解决Spring Mvc中对象绑定参数重名问题的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
决不要重新定义继承而来的缺省参数值
决不要重新定义继承而来的缺省参数值,由权威的Effective C++讲述!
JavaScript动态绑定详解
主要为大家详细介绍了JavaScript动态绑定,关于JavaScript中为元素绑定的事件失效的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
解决vue字符串换行问题(绝对管用)
主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
详解SpringMVC注解@initbinder解决类型转换问题
本篇文章主要介绍了详解SpringMVC注解@initbinder解决类型转换问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


数据库
