MYSQL Incorrect number of arguments for PROCEDURE

qin522106350 2013-01-21 09:26:40
程序端给出的参数为
“/北京“
ADO连接字符串 charSet = gbk
服务器数据库 采用 gbk字符集
同一个软件

在不同客户机上运行

当调用存储过程的时候 传入参数 一些是正常的 另外一些就报这个 错误了
MYSQL Incorrect number of arguments for PROCEDURE tymes.mail_Add; expected 1, got 5



...全文
7785 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qin522106350 2013-01-23
  • 打赏
  • 举报
回复
_CommandPtr cmmd; HRESULT hr = cmmd.CreateInstance(__uuidof(Command)); if(FAILED(hr)) { AfxMessageBox("创建_CommandPtr对象失败"); return 0; } cmmd->Parameters->Refresh(); _ParameterPtr param; param = cmmd->CreateParameter("",adVarChar, adParamInput,len+1, _variant_t(m_CountDepartment)); cmmd->Parameters->Append(param); cmmd->CommandText=_bstr_t("evaluate_count");//存储过程的名称 cmmd->ActiveConnection = m_pConnection;//需要使用的ADO连接 cmmd->CommandType=adCmdStoredProc; cmmd->Execute(NULL, NULL, adCmdStoredProc); cmmd.Detach(); //---------------------------------------------------------------------------------------- _CommandPtr m_pCommand;//初始化命令对象 m_pCommand.CreateInstance("ADODB.Command");//创建命令实例 m_pCommand->ActiveConnection=m_pConnection;//设置命令对象的连接 m_pCommand->CommandText = _bstr_t("evaluate_count"); m_pCommand->CommandType=adCmdStoredProc; m_pCommand->Parameters->Refresh(); _ParameterPtr ParametV; ParametV.CreateInstance(__uuidof(Parameter)); ParametV=m_pCommand->CreateParameter("",adVarChar,adParamInput,len+1,_variant_t(m_CountDepartment)); m_pCommand->Parameters->Append(ParametV); //执行存储过程 m_pRecordset = m_pCommand->Execute(Null,Null,adCmdStoredProc); m_pRecordset.Detach(); //------------------------------------------------------------------------- 以上两段代什么什么吗本质的区别 从而导致 在系统版本较老的情况下 只有代码一正常运行 了解的加qq1615128878
qin522106350 2013-01-23
  • 打赏
  • 举报
回复
引用 5 楼 ACMAIN_CHM 的回复:
打开日志,看看到底CLINET向数据库发送的是什么语句。
就算 知道了 传入的不一样 但是也不知道是怎么产生的结果不一样 只是把执行的c++语言的顺序变化了下
qin522106350 2013-01-23
  • 打赏
  • 举报
回复
引用 5 楼 ACMAIN_CHM 的回复:
打开日志,看看到底CLINET向数据库发送的是什么语句。
看日志 怎么看 没用过
qin522106350 2013-01-22
  • 打赏
  • 举报
回复
有人来说明下吗
ACMAIN_CHM 2013-01-22
  • 打赏
  • 举报
回复
打开日志,看看到底CLINET向数据库发送的是什么语句。
qin522106350 2013-01-21
  • 打赏
  • 举报
回复
MYSQL Incorrect number of arguments for PROCEDURE nnsmt206.total_count; expected 4, got 8 很明显的,存储过程中发生参数的问题,检查了很久,发现参数的数据及值都是正确的,想了很久,有可能是因为使用了非正式的字符形成了,所以英文字符下重建了此过程,执行后,发现完成没问题. 其他,在程序调用出错时,我在SQLYOG 内进行了测试,发生是完整的,无错误的.或许是那个测试版本的SQLyog有问题. 问题猜测: 进入Mysql服务器 修改存储过程 从第四个参数 逐一递减 报错为 3 - 7 / 2 - 6/ 1 -5 问题预测:服务器把第一个参数"中文参数" 分解为了5个参数 现在已经解除问题: 原因不明; 方法为 调整语句的执行顺序。
qin522106350 2013-01-21
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
Incorrect number of arguments 这个貌似是传入的参数个数不对
我知道 但是 你注意看 是一些客户机上不正常 就是说程序端 是正常的传一个参数 但是由于运行程序的客户机不同 最后到服务器参数 被解析为5个参数了 我现在是不知道中间发生了什么。
rucypli 2013-01-21
  • 打赏
  • 举报
回复
Incorrect number of arguments 这个貌似是传入的参数个数不对

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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