как заполнить Recordset хранимой процедурой?

AlexeyKo
Дата: 30.08.2005 18:41:31
Помогите!
Не получается получить набор данных из хр.проц. Делаю как показано ниже.
Заметил, что если хп состоит из одного select'a, то все работает, но вот если в тело хп, к примеру, добавить временную таблицу и вставить select * into #temptable from ... , то программа закрывает recordset сразу после вызова cmd.Execute, а обращение к oRecordset.EOF дает ошибку: "Операция не допускается, если объект закрыт"
При этом из QA все выглядит замечательно...

Dim conn As New ADODB.Connection
Dim cmd As ADODB.Command
Dim oRecordset As ADODB.Recordset

conn.ConnectionString = "Provider=SQLOLEDB;Server=(local);Initial Catalog=SBODemo_RU76;Trusted_Connection=Yes"
conn.CursorLocation = adUseClient
conn.Open

Set cmd = New ADODB.Command
cmd.Prepared = False
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "Test"
cmd.Parameters.Item("@WCode").Value = strWarehouse
cmd.Parameters.Item("@CCode").Value = "C1000"
cmd.Parameters.Item("@Year").Value = "2005"
Set oRecordset = cmd.Execute
i = 1
While Not oRecordset.EOF
sht.Cells(1, i) = oRecordset.Fields(0).Value
i = i + 1
oRecordset.MoveNext
Wend
Set oRecordset = Nothing
Set cmd = Nothing
conn.Close
Set conn = Nothing


при такой хп все ОК:
CREATE PROCEDURE [dbo].[Test] AS
Select Code, Name From [dbo].[@One_MainWh]
GO

при такой хп все очень плохо :(
CREATE PROCEDURE [dbo].[Test] AS
Select * into #t From [dbo].[@One_MainWh]
Select Code, Name From [dbo].[@One_MainWh]
drop table #t
GO
Sa
Дата: 31.08.2005 06:50:49
AlexeyKo

Помогите!

Это форум по ADO.NET

uid = Sa