如题,谢谢!

解决方案 »

  1.   

    VB的代码如下:
     Dim cnn1 As ADODB.Connection
       Dim cmdByRoyalty As New ADODB.Command
       Dim prmByRoyalty As New ADODB.Parameter
      Dim prmByRoyalty2 As New ADODB.Parameter
        ' 为存储过程定义命令对象。
       Set cnn1 = New ADODB.Connection
       cnn1.Open "PROVIDER=MSDASQL;dsn=SHDB;uid=TEST;pwd=TEST;database=SHDB;"   Set cmdByRoyalty.ActiveConnection = cnn1
       cmdByRoyalty.CommandText = "StdCommonType"
       cmdByRoyalty.CommandType = adCmdStoredProc
    Set prmByRoyalty = cmdByRoyalty.CreateParameter("arg1", adBSTR, adParamInput, , "2004-06-30")
    cmdByRoyalty.Parameters.Append prmByRoyalty
    Set prmByRoyalty2 = cmdByRoyalty.CreateParameter("arg2", adBSTR, adParamInput, , "000003")
    cmdByRoyalty.Parameters.Append prmByRoyalty2
    cmdByRoyalty.Execute
      

  2.   

    1.請檢查參數的類型及長度是否正確
    2.請以下方法試試
    cmdByRoyalty..Parameters.Append mAdoCmd.CreateParameter("arg1", adChar, adParamInput, 50, "2004-06-30")
      

  3.   

    cmdByRoyalty..Parameters.Append mAdoCmd.CreateParameter("arg1", adChar, adParamInput, 50, "2004-06-30")
    和上面分两补写应该是一样的效果吧
      

  4.   

    更正:
    VB代码:Set prmByRoyalty = cmdByRoyalty.CreateParameter("Inputdate", adChar, adParamInput, 11, "2004-06-30")
    cmdByRoyalty.Parameters.Append prmByRoyalty
    Set prmByRoyalty = cmdByRoyalty.CreateParameter("ItemTotalCost", adDouble, adParamInput, , 112571.33)
    cmdByRoyalty.Parameters.Append prmByRoyalty存储过程是CREATE PROCEDURE StdCommonType (IN Inputdate CHAR(11),IN ItemTotalCost DOUBLE)
    这样类型对应有错吗?