程序端给出的参数为 
“/北京“
ADO连接字符串 charSet = gbk
服务器数据库 采用 gbk字符集
同一个软件  在不同客户机上运行 当调用存储过程的时候 传入参数  一些是正常的  另外一些就报这个 错误了
MYSQL Incorrect number of arguments for PROCEDURE tymes.mail_Add; expected 1, got 5

解决方案 »

  1.   

     Incorrect number of arguments
    这个貌似是传入的参数个数不对
      

  2.   

    MYSQL Incorrect number of arguments for PROCEDURE nnsmt206.total_count; expected 4, got 8很明显的,存储过程中发生参数的问题,检查了很久,发现参数的数据及值都是正确的,想了很久,有可能是因为使用了非正式的字符形成了,所以英文字符下重建了此过程,执行后,发现完成没问题.其他,在程序调用出错时,我在SQLYOG 内进行了测试,发生是完整的,无错误的.或许是那个测试版本的SQLyog有问题.
    问题猜测:
    进入Mysql服务器 修改存储过程 从第四个参数 逐一递减 报错为 3 - 7 / 2 - 6/ 1 -5 
    问题预测:服务器把第一个参数"中文参数" 分解为了5个参数  
    现在已经解除问题:
    原因不明;
    方法为 调整语句的执行顺序。
      

  3.   

    打开日志,看看到底CLINET向数据库发送的是什么语句。
      

  4.   

    _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