51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> sqlserver >> 文章正文

VB6.0中调用SQL server2000中的存储过程

更新时间:2012-2-12:  来源:51代码网

本人现在在用VB6.0写一个信息管理程序,是C/S的,想在后台用存储过程完成对数据的操作。现在又这样一个存储过程:CREATE PROCEDURE [admin_now] 
  @name varchar
AS
  DECLARE @R varchar
Select @R=mm from admin where name= @name
  RETURN @R
GO ------用于获取用户表admin中从text1.text获取的用户名对应的密码
在VB6.0中关于调用这个存储过程的代码:
Private Sub cmd1_Click()
Dim Conn As New ADODB.Connection
Dim Cmd As New ADODB.Command
Dim Par As ADODB.Parameter
Dim y As String
y = Text1.Text
Conn.Open "Driver={SQL server};server=FS;uid=sa;pwd=;database=yd" ----建立连接
Cmd.CommandType = adCmdStoredProc ----要设置Command类型为存储过程
Set Cmd.ActiveConnection = Conn ----现在设置Command的数据连接
Set Par = Cmd.CreateParameter("R", adInteger, adParamReturnValue) -----返回值的参数
Cmd.Parameters.Append Par
Set Par = Cmd.CreateParameter("name", adChar, adParamInput, 20, y) -----调用的参数
Cmd.Parameters.Append Par
Cmd.CommandText = "admin_now"
Set DS = Cmd.Execute
MsgBox Cmd.Parameters("R").Value ----问题在这里,这个确定提示上面除了个提示按钮什么也没有,没有返回的@R的值
Conn.Close
Set Cmd = Nothing
Set Conn = Nothing
Set DS = Noting -----这里总是提示“类型不匹配”?
End Sub

现在问题是返回的值看不到,而我想把这个返回的值赋给一个变量,然后判断值对不对,不知道这样的语句该怎样写?
我才学的调用存储过程,但书上写的都不清楚,不用具体语句是做什么用的,为什么这样写?各位老师能不能推荐本具体讲调用存储过程的帖子或书。我找的这段代码还是太多了,现在我还是搞不清怎样向存储过程传递多个参数,让控件直接显示存储过程返回的值或视图返回的查询结果(表格)。
最好有一个调用存储过程的函数,想这样:函数名(存储过程名,传递参数,。。。)就好了,hehe .
我在线等老师们的解答,谢谢!

dim ds as recordset
msgbox ds("R")
现在提示Set ds = Cmd.Execute这个语句类型不匹配了

我用你写的msgbox ds("R")
替换了MsgBox Cmd.Parameters("R").Value
然后加上dim ds as recordset
,我是想让返回的值赋给一个变量,不在MSGBOX中显示了

现在提示:msgbox ds("R")对象变量未设置
adoconn要先使用客户端游标adoconn.CursorLocation = adUseClient,然后再打开数据库。
@R是存储过程返回的参数,这里的R是我随便加的,因为这段代码的原作者说这里可以什么取名

必要的空格还是要加的。不能把它们连成一片。

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |