Private Sub Command2_Click()
 '--------------------------数据连接-------------------------
 Dim param As ADODB.Parameter
  Dim cn As ADODB.Connection
  Set cn = New ADODB.Connection
  cn.CursorLocation = adUseClient
  cn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data     Source=sql_ado1_bw"
  cn.ConnectionTimeout = 30
  cn.OpenSet rs4 = New ADODB.Recordset    Set cmd = New ADODB.Command    cmd.ActiveConnection = cn    cmd.CommandText = "vbSpTest"    cmd.CommandType = adCmdStoredProc    Set param = cmd.CreateParameter("personID", adChar, adParamInput, 20, Trim(Text1.Text))    cmd.Parameters.Append param    '输出参数    Set param = cmd.CreateParameter("outstr", adChar, adParamOutput)    cmd.Parameters.Append param            Set rs4 = cmd.Execute()    MsgBox cmd.Parameters("outstr").Value       Set DataGrid1.DataSource = rs4    DataGrid1.Refresh'存储过程CREATE PROCEDURE [vbSpTest]
(
 @personID  varchar(50),
 @outstr varchar(50) output-------------------返回值
)
 AS
select * from employee where 工号=@personID
set @outstr='test'
GO
'我想把存储过程的·@outstr的值给取出来现在的问题是:"不正常的定义参数对像,提供不一致,或不完整的信息源"

解决方案 »

  1.   

    参考
    http://blog.csdn.net/online/archive/2004/08/05/66376.aspx
      

  2.   

    改一下相关地方
    Cmd.CreateParameter "personID", adVarChar, adParamInput
    Cmd.CreateParameter "outstr", adVarChar, adParamInputCmd.Parameters("@personID").Value =Text1.textmsgbox Cmd.Parameters("@outstr").Value
      

  3.   

    上面错 ,改一下相关地方
    Cmd.CreateParameter "personID", adVarChar, adParamInput
    Cmd.CreateParameter "outstr", adVarChar, adParamOutput
    Cmd.Parameters("@personID").Value =Text1.text
    Cmd.Parameters("@outstr").Value=""
    msgbox Cmd.Parameters("@outstr").Value