写了一个存储过程,先用SELECT INTO语名将多个数据表连接查询后生成一个局部临时表#abcd ,然后再用Select 语句对临时表进行分组统计,想将分组统计的多行记录结果用ADO的方式返回到VB中,并在卓面表格中显示出来,
存储过程在SQL Server查询分析器中执行通过且正确。在VB中调用时出现提示:
过程Proc_Energy01’需要参数 ’@OutParam’,由于本人是初次使用存储过程,所以不知道怎么做,请各位高手指教,存储过程该如何写才行,谢谢!存储过程及VB调用程序如下:
存储过程程序:(用VB创建的存储过程)
CREATE PROCEDURE Proc_Energy01(@InParam Char(6))
as
select Q.油田ID,Q.油田名称,R.区块ID,S.井号,年月,日产液,日产油,含水 into #abcd
from 油田名称表 Q,油田区块名称表 R,井号名称表 S,产能原始表 T
where Q.油田ID=R.油田ID AND R.区块ID=S.区块ID AND S.井号=t.井号 and t.年月=@InParam
order by Q.油田ID
select 油田名称,count (*) as 井数,sum(日产液) 日产液,sum(日产油) as 日产油
from #abcd
group by 油田名称 VB调用程序
Dim Conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim paraInput As ADODB.Parameter
Dim rst As ADODB.Recordset
Set Conn = New ADODB.Connection
Set paraInput = New ADODB.Parameter
Set cmd = New ADODB.Command
With paraInput
.Type = adVarChar '参数类型
.Size = 6 '参数长度
.Direction = adParamInput '参数方向,输入或输出
.Value =’200707’
End With
cmd.Parameters.Append paraInput '加入参数
Conn.CursorLocation = adUseClient '使用由本地游标库提供的客户端游标
Conn.Open ConnectionString
Set cmd.ActiveConnection = Conn
With cmd
.CommandType = adCmdStoredProc
.CommandText = "Proc_Energy01" '存储过程名
.CommandTimeout = 15
.Execute '运行存储过程
Set rst = .Execute '如果有记录集返回的写法
End With
存储过程在SQL Server查询分析器中执行通过且正确。在VB中调用时出现提示:
过程Proc_Energy01’需要参数 ’@OutParam’,由于本人是初次使用存储过程,所以不知道怎么做,请各位高手指教,存储过程该如何写才行,谢谢!存储过程及VB调用程序如下:
存储过程程序:(用VB创建的存储过程)
CREATE PROCEDURE Proc_Energy01(@InParam Char(6))
as
select Q.油田ID,Q.油田名称,R.区块ID,S.井号,年月,日产液,日产油,含水 into #abcd
from 油田名称表 Q,油田区块名称表 R,井号名称表 S,产能原始表 T
where Q.油田ID=R.油田ID AND R.区块ID=S.区块ID AND S.井号=t.井号 and t.年月=@InParam
order by Q.油田ID
select 油田名称,count (*) as 井数,sum(日产液) 日产液,sum(日产油) as 日产油
from #abcd
group by 油田名称 VB调用程序
Dim Conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim paraInput As ADODB.Parameter
Dim rst As ADODB.Recordset
Set Conn = New ADODB.Connection
Set paraInput = New ADODB.Parameter
Set cmd = New ADODB.Command
With paraInput
.Type = adVarChar '参数类型
.Size = 6 '参数长度
.Direction = adParamInput '参数方向,输入或输出
.Value =’200707’
End With
cmd.Parameters.Append paraInput '加入参数
Conn.CursorLocation = adUseClient '使用由本地游标库提供的客户端游标
Conn.Open ConnectionString
Set cmd.ActiveConnection = Conn
With cmd
.CommandType = adCmdStoredProc
.CommandText = "Proc_Energy01" '存储过程名
.CommandTimeout = 15
.Execute '运行存储过程
Set rst = .Execute '如果有记录集返回的写法
End With
解决方案 »
- 请问怎么模拟点击网页中的“刷新”按钮
- 请看看下面的程序要怎么写?
- 如何控制在VB中打开其它程序时该程序的显示位置?
- 求助:MSHflexgrid空件单元格的合并
- 在vb中怎样实现弹出式菜单
- DAO和flexgrid控件里的recordset记录集怎么用?
- SQL Server数据库的ADO连接问题,怎么修改当前用户????
- 请问VB如何停止当前程序, 启动另一程序?
- 请问那里有免费的拼写/语法检查控件下载
- 一段vb程序,用于实现与单片机的串口连接,并可以显示和发送实时温度和设置报警温度,可是调试时总是失败。求助
- 由"电动保险套"引发的技术讨论......
- SOS!SOS! SQL Server 存储过程返回结果集
'// 创建一个对象,我们用来调用存储过程
Set adoComm = CreateObject("ADODB.Command")
With adoComm
'// 设置连接,假设 adoConn 为已经连接的 ADODB.Connection 对象
.ActiveConnection = adoConn
'// 类型为存储过程,adCmdStoredProc = 4
.CommandType = 4
'// 存储过程名称
.CommandText = "你的存储过程名称"
'// 设置输入参数
.Parameters.Item("@输入参数").Value = "值"
'// 执行存储过程
.Execute If .Parameters.Item("@返回参数名称").Value = True Then Else End If
End With
'// 释放对象
Set adoComm = Nothing