在vb中如何调用一个存储过程

fengzhenxiang 2004-03-30 10:21:08
谢谢
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ncoxwwz 2004-04-02
  • 打赏
  • 举报
回复
最简单的方法:
conn.excute "存储过程名 '参数1','参数2',..."
ywg888 2004-03-30
  • 打赏
  • 举报
回复
Option Explicit
Private mConn As Connection

Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Dim param As ADODB.Parameter

Set cmd = New ADODB.Command
cmd.ActiveConnection = mConn
cmd.CommandText = "insert_users"
cmd.CommandType = adCmdStoredProc

Set param = cmd.CreateParameter("truename", adChar, adParamInput, 20, Trim(txttruename.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("regname", adChar, adParamInput, 20, Trim(txtregname.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("pwd", adChar, adParamInput, 20, Trim(txtpwd.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("sex", adChar, adParamInput, 20, Trim(txtsex.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("email", adChar, adParamInput, 20, Trim(txtemail.Text))
cmd.Parameters.Append param

Set rs = cmd.Execute

Command2_Click

End Sub

Private Sub Command2_Click()
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Dim param As ADODB.Parameter

Set rs = New ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = mConn
cmd.CommandText = "select_users"
cmd.CommandType = adCmdStoredProc

mConn.CursorLocation = adUseClient 'ÉèÖÃΪ¿Í»§¶Ë

Set rs = cmd.Execute()

MsgBox rs.RecordCount
Set DataGrid1.DataSource = rs
DataGrid1.Refresh

End Sub

Private Sub Form_Load()
'open the connection
Set mConn = New Connection

mConn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=TestUser;Data Source=yang"
mConn.Open
Dim rs As New ADODB.Recordset
'Set rs = New ADODB.Recordset
rs.Open "users", mConn, adOpenStatic, adLockPessimistic

MsgBox rs.RecordCount

End Sub



Private Sub Form_Unload(Cancel As Integer)

mConn.Close
Set mConn = Nothing
End Sub

饮水需思源 2004-03-30
  • 打赏
  • 举报
回复
这就要看具体的要求了,以下是我的一个存储过程:

/*************************************************************
名称:pcGetIDVouch
功能:取得商品重点养护单最大单据编号
传入参数:
返回参数:
作者:Leftie
新建日期:2003-03-29 09:04:34
最新修改日期:2003-03-29 09:04:34
**************************************************************/
CREATE PROCEDURE [pcGetIDVouch]
@id nvarchar(10) output
AS
declare @maxid varchar(8)
declare @cmax varchar(15)
if (select count(*) from Vouch where cVouchType='61')=0
begin
select @id=replicate('0',7) +'1'
end
else
begin
select @cmax=max(cVouchid) from Vouch where cVouchType='61'
select @maxid=cast(cast(substring(@cmax,7,8) as int)+1 as varchar)
select @id=replicate('0',8-len(@maxid))+@maxid
end
GO
lyhyp 2004-03-30
  • 打赏
  • 举报
回复
Dim conn As New ADODB.Connection
conn.ConnectionString="数据库连接字符串"
conn.open
conn.execute 存储过程名 参数
chuting1 2004-03-30
  • 打赏
  • 举报
回复
存储过程是什么。是一条语句吗?不要见笑
饮水需思源 2004-03-30
  • 打赏
  • 举报
回复
Public Function GetID(ByVal pcName As String, ByVal IDSize As Integer) As String
'返回最大单据号
'pcname为存储过程名
'IDSize为号码长度
Dim am As New ADODB.Command
Dim ap As New ADODB.Parameter
With am
.CommandType = adCmdStoredProc
.ActiveConnection = Rac
ap.Direction = adParamOutput
ap.Type = adVarChar
ap.Size = IDSize
.Parameters.Append ap
.CommandText = pcName
.Execute
End With
GetID = ap.Value
Set ap = Nothing
Set am = Nothing
End Function

text1.text=GetID("pcGetISaleBillVouch", 8)

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧