sql是我定义的string,addxs是sql里的存储过程,有16个参数。text2 ,text3为字符型,text1[]为decimal型。我想执行它,可是格式写的不对,请大家帮忙!
sql = "addxs('" + Text2.Text + "','" + Text3.Text + "','" + LTrim(Text1(0).Text) + "','" + LTrim(Text1(1).Text) + "','" + LTrim(Text1(2).Text) + "','" + LTrim(Text1(3).Text) + "','" + LTrim(Text1(4).Text) + "','" + LTrim(Text1(5).Text) + "','" + LTrim(Text1(6).Text) + "','" + LTrim(Text1(7).Text) + "','" + LTrim(Text1(8).Text) + "','" + LTrim(Text1(9).Text) + "','" + LTrim(Text1(10).Text) + "','" + LTrim(Text1(11).Text) + "','" + LTrim(Text1(12).Text) + "','" + LTrim(Text1(13)) + "')"

解决方案 »

  1.   

    '给你一个调用存储过程返回值的例子'例子的意思是根据一个起始日期和日期间隔,算出结束日期并返回这个结束日期
    '存储过程中包含三个参数,两个输入类型,一个输出类型
    'sp_日期 为存储过程名Public Function DateWorkout(ByVal BeginDate As String, ByVal WorkoutDate As Integer) As String
    On Error GoTo ErrTrap
        Dim cmdWork As New ADODB.Command
        Dim param1 As Parameter, param2 As Parameter, param3 As Parameter
        Set cmdWork.ActiveConnection = gadoCN
        cmdWork.CommandText = "sp_日期"
        cmdWork.CommandType = adCmdStoredProc
        Set param1 = cmdWork.CreateParameter("@BeginDate", adDBTimeStamp, adParamInput)
        cmdWork.Parameters.Append param1
        Set param2 = cmdWork.CreateParameter("@DateNum", adInteger, adParamInput)
        cmdWork.Parameters.Append param2
        Set param3 = cmdWork.CreateParameter("@EndDate", adDBTimeStamp, adParamReturnValue)
        cmdWork.Parameters.Append param3
        param1.Value = BeginDate
        param2.Value = WorkoutDate
        param3.Value = 0
        Call cmdWork.Execute
        DateWorkout = param3.Value
        On Error GoTo 0
        Exit Function
    ErrTrap:
        DateWorkout = 0
        On Error GoTo 0
    End Function'示例存储过程代码
    'CREATE PROCEDURE sp_日期(@BeginDate datetime,@DateNum integer,@EndDate datetime output)
    'AS
    '    select @EndDate = @BeginDate+@DateNum
    'GO
      

  2.   

    With cmd
                  .ActiveConnection = conn
                  
                  .CommandType = adCmdStoredProc
                  .CommandText = "Pro_Select_V_EPD_Material_Insert"
                  .Parameters("@Material_Class").Value = "'" & Trim(Material_Class) & "'"
                  .Parameters("@Material_Type").Value = "'" & Trim(Material_Type) & "'"
                  .Parameters("@M_P_Flag").Value = "'" & Trim(M_P_Flag) & "'"
                  .Parameters("@Material_Code").Value = "'" & Material_Code & "%'"
                  .Execute
           End With
              
           With Rs
                .CursorLocation = adUseClient
                .CursorType = adOpenForwardOnly
                .LockType = adLockReadOnly
                .Open cmd
          end with