谁有用过在ASP中调用MYSQL有输入参数存储过程呢?用
cmdObj.Parameters.Append cmdObj.Createparameter("M_FWorkNo",200,1,50,fWorkNo)提示出错。

解决方案 »

  1.   

    Createparameter 有这种用法吗?可以试试下面这种方式。
    public void CreateMyOleDbCommand(OleDbConnection connection,
        string queryString, OleDbParameter[] parameters) 
    {
        OleDbCommand command = new OleDbCommand(queryString, connection);
        command.CommandText = 
            "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
        command.Parameters.Add(parameters);    for (int j=0; j<parameters.Length; j++)
        {
            command.Parameters.Add(parameters[j]) ;
        }    string message = "";
        for (int i = 0; i < command.Parameters.Count; i++) 
        {
            message += command.Parameters[i].ToString() + "\n";
        }
        Console.WriteLine(message);
    }
      

  2.   

    我用的是ASP,不是ASP.NET
    程序调用的是过程
    Function getWincoBosCombinedEdit(dbObj,fWorkNo,fYSSL,fZDSS,fDate,fName,fDeliveryDate)
        Dim rs,cmdobj
        set cmdObj=Server.CreateObject("ADODB.Command")
            cmdObj.CommandText="P_SelBosCombinedEdit"
            cmdObj.CommandType=4
        set cmdObj.ActiveConnection=dbObj 
        cmdObj.Prepared=True
        cmdObj.Parameters.Append cmdObj.Createparameter("M_FWorkNo",200,1,50,fWorkNo)
        cmdObj.Parameters.Append cmdObj.Createparameter("M_FYSSL",4,1,50,fYSSL)
        cmdObj.Parameters.Append cmdObj.Createparameter("M_FZDSS",4,1,50,fZDSS)    
        cmdObj.Parameters.Append cmdObj.Createparameter("M_FDate",200,1,50,fDate)
        cmdObj.Parameters.Append cmdObj.Createparameter("M_FName",200,1,128,fName)
        cmdObj.Parameters.Append cmdObj.Createparameter("M_FDeliveryDate",200,1,128,fDeliveryDate) 
        Set getWincoBosCombinedEdit=cmdObj.Execute 
    End Function
    dbObj是连接数据库的,P_SelBosCombinedEdit是连接的存储过程,测试时候提示有问题,在MS SQL SERVER里就没有问题
      

  3.   

    ASP ,
    那出错信息是什么?
      

  4.   

    错误类型:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [MySQL][ODBC 3.51 Driver][mysqld-5.0.41-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call P_SelBosCombinedEdit('GC08121222', 3.00100000000000000e+003, 3.0700000000' at line 1
    /winco/sinclude/dbLib.shtml, 第 2487 行
    浏览器类型:
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 网页:
    POST 1776 ??? /winco/pmc/k3BcWorkNoEdit.aspPOST Data:
    stockOutDate=&fWorkNo1=GC08121222&isChange1=&fCustomerName1=%E5%AE%89%E9%81%94&fName1=10852+09%E5%B9%B4%E6%9C%AC%E5%BB%A0%E7%9B%92&fYSSL1=3001&fZDSS1=3070&fDeliveryDate1=12-30&fLevel01=2889&fMadeWidth . . . 
      

  5.   

    错误类型:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [MySQL][ODBC 3.51 Driver][mysqld-5.0.41-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call P_SelBosCombinedEdit('GC08121225', '2009-4-18') }' at line 1
    /winco/sinclude/dbLib.shtml, 第 2483 行
    “cmdObj.Parameters.Append”那个是ASP调用MS SQL SERVER存储过程常用的,但调用MYSQL就不太清楚用哪个了,按道理说应该是可以调用的呀,不知道为什么?
      

  6.   

    ASP中ADO的语法没有问题。 从错误信息看四楼的应该是参数的数据类型没有定义好
    call P_SelBosCombinedEdit('GC08121222', 3.00100000000000000e+003, 3.0700000000' 而五楼则是 call P_SelBosCombinedEdit('GC08121225', '2009-4-18')  只有两个参数?你两次的错误信息为什么不同啊? 一个是 2487 行,一个是2483 行。这两行的代码都是什么?
      

  7.   

    是不是这个CONNECTOR[MySQL][ODBC 3.51 Driver]版本比较低,不能连接存储过程造成的呢
      

  8.   

    有这种可能,不过没听说过,不妨下个最新的connector试试。
      

  9.   

    现在有一个问题是在ASP调用这个存储过程:
    存储过程的大致内容为:查询一些处理好的数据放在新建的零时表中,同时向表bosCombinedPMCEntry插入入数据,然后用SELCECT语句查询这个零时表出来。
    然后在网页中调用这个存储过程插寻出来的数据放在在TABEL中,却无数据显示,不知道为什么。而MYSQL表中bosCombinedPMCEntry已经插入了新数据了。
    在MYSQL中调用call P_SelBosCombinedEdit('gc08121254',200,300,'2009-4-21','sdfsdf',0,1,1,1,1,0,1);
    是可以查询出来数据的。
    就是在网页中显示不出来,不知道为什么?