存储过程的参数不能是TEXT,IMAGE类型

解决方案 »

  1.   

    存储过程:
    CREATE PROCEDURE [dbo].[ChangePassword]
    @UserID varchar(16),
    @PassWord varchar(16)
     AS
    UPDATE Operators 
    SET Operators.[PassWord] =  @PassWord 
    WHERE Operators.UserID = @UserID
    GOVB代码:
    Public Function ChangePass(UserID As String, PassWord As String) As Boolean
      '修改口令。
      Dim Cmd As Command, Para As ADODB.Parameter
      Dim Cn As Connection
      
      On Error GoTo ErrInChangePass
      
      '初始化
      ChangePass = False
      Set Cn = New Connection
      With Cn
        .ConnectionString = Parent.DataLink
        .CursorLocation = adUseClient
        .Open
      End With
      
      '创建对象
      Set Cmd = New Command
      
      With Cmd
        '返回信息
        Set .ActiveConnection = Cn
        .CommandType = adCmdStoredProc
        Set Para = .CreateParameter("UserID", adVarChar, adParamInput, 16, UserID)
        .Parameters.Append Para
        Set Para = Nothing
        Set Para = .CreateParameter("PassWord", adVarChar, adParamInput, 16, PassWord)
        .Parameters.Append Para
        Set Para = Nothing
        .CommandText = "u_ChangePassword"
        .Execute
        If Cn.Errors.Count <= 0 Then
          Parent.ClsUserInfo.PassWord = PassWord
          ChangePass = True
          Err.Raise 162, Parent.UserErrSource '口令修改成功!
        Else
          Err.Raise 163, Parent.UserErrSource '口令修改不成功!
        End If
      End With
      
    FreeInChangePass:
      '释放不必要的对象
      On Error Resume Next
      Set Cmd = Nothing
      With Cn
        If .State <> adStateClosed Then .Close
      End With
      Set Cn = Nothing
      Exit Function
    ErrInChangePass:
      '如果有错误,显示错误,并清除错误标志
      Call Parent.RegisterAndClearErr
      Resume FreeInChangePass
    End Function
      

  2.   

    you can
    cmd.paramters.refresh
    然后副值
      

  3.   

    cmd.parameters.refresh
    然后付值
      

  4.   

    cmd.parameters.refresh
    然后付值