举例:
use pubs
gocreate procedure myproc @ioparam int output as
select * from stud
select @ioparam=88
return 99
go
vb代码
Dim rs As New ADODB.Recordset
Dim cm As New ADODB.Command
Dim pm As New ADODB.Parameter
cm.ActiveConnection = "DSN=pubs;uid=sa"
cm.CommandText = "myproc"
cm.CommandType = adCmdStoredProc
Set pm = cm.CreateParameter("return", adInteger, adParamReturnValue, , 0)
cm.Parameters.Append pm
Set pm = cm.CreateParameter("output", adInteger, adParamOutput, , 0)
cm.Parameters.Append pm
Set rs = cm.Executers.Close
Debug.Print cm(0)
Debug.Print cm(1)注意必须在rs关闭之后,才行
use pubs
gocreate procedure myproc @ioparam int output as
select * from stud
select @ioparam=88
return 99
go
vb代码
Dim rs As New ADODB.Recordset
Dim cm As New ADODB.Command
Dim pm As New ADODB.Parameter
cm.ActiveConnection = "DSN=pubs;uid=sa"
cm.CommandText = "myproc"
cm.CommandType = adCmdStoredProc
Set pm = cm.CreateParameter("return", adInteger, adParamReturnValue, , 0)
cm.Parameters.Append pm
Set pm = cm.CreateParameter("output", adInteger, adParamOutput, , 0)
cm.Parameters.Append pm
Set rs = cm.Executers.Close
Debug.Print cm(0)
Debug.Print cm(1)注意必须在rs关闭之后,才行
解决方案 »
- 关于SQL2数据表之间的链接
- 语法问题 update 更新多表的情况^^^^^^^^^^^^^^^
- 怎么查询总数?
- 在事物中可以控制drop table 么?如果可以的话?应该用什么关键字呢?
- 如何通过*.sql脚本建立数据库
- 在ACCESS中给表增加自动编号字段问题
- 一个从三个基础表得到一个查询,比较复杂,请大家帮手实现
- SQL Server2000 的数据库怎么移到另一台SQL Server2000呢???
- 一个存储过程运行时总是有错误,请指教。
- 谁会用Excel透视表?一个难题!!
- mdb能转化为xls??
- Delphi 5.0与 SQL Server 7.0的关于Image的问题,紧急求助!!!!
Dim Comm As New ADODB.Command
'On Error Resume Next
Set Comm.ActiveConnection = CsiLogin.Con
Comm.CommandText = "ztby.dbo.ztadd"
Comm.CommandType = adCmdStoredProc
Comm.Parameters.Append Comm.CreateParameter("code", adInteger, adParamOutput, , 0)
Comm.Parameters.Append Comm.CreateParameter("name", adChar, adParamInput, 8, mvarName)
Comm.Parameters.Append Comm.CreateParameter("sfz", adChar, adParamInput, 18, mvarSfz)
Comm.Parameters.Append Comm.CreateParameter("adddate", adDate, adParamInput, , mvarAddDate)
Comm.Parameters.Append Comm.CreateParameter("zgbm_id", adInteger, adParamInput, , mvarZgbm_Id)
Comm.Parameters.Append Comm.CreateParameter("dy", adCurrency, adParamInput, , mvarDy)
Comm.Parameters.Append Comm.CreateParameter("dyonce", adCurrency, adParamInput, , mvarDyonce)
Comm.Parameters.Append Comm.CreateParameter("bank_id", adInteger, adParamInput, , mvarBank_id)
Comm.Parameters.Append Comm.CreateParameter("postno", adChar, adParamInput, 6, mvarPostNo)
Comm.Parameters.Append Comm.CreateParameter("addr", adChar, adParamInput, 100, mvarAddr)
CsiLogin.Con.Errors.Clear
Comm.Execute
Addbasis = (CsiLogin.Con.Errors.Count = 0)
If Addbasis Then mvarCode = Comm(0)
End Function
CsiLogin.Con是建立的全局连接
ztby.dbo.ztadd 是存储过程名,用RDO应该是{call ?=ztby.dbo.ztadd(?,?,?,?,?,?,?,?)}
而用上面语句的话()ado,单步跟踪是{call ztby.dbo.ztadd(?,?,?,?,?,?,?,?,?)}
另外,我在SQL上有2个数据库csimis和ztby,会不会是ODBC连接时不知道连到哪里去?而我VB程序中需要用到上面2个数据库啊!
是不是vb或odbc或ado的版本问题或者是系统问题吗?