powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Recordset FROM sp WITH temporary TABLES
4 сообщений из 4, страница 1 из 1
Recordset FROM sp WITH temporary TABLES
    #32096711
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые коллеги, подскажите,пожалуйста, как получить результат работы хранимой процедуры, возвращающей содержимое временной таблицы,
в ADO-рекордсете, объявленном в Visual Basic 6?

Ниже приведен пример из справки по ADO 2.6, НОРМАЛЬНО работающий при закомментированных минусами конструкциях с использованием временных таблиц.
Если их раскомментировать, рекордсет инициализируется,
но БЕЗ РЕЗУЛЬТАТА: оператор DO WHILE NOT objRs.EOF
выдаёт ошибку "Операция не допускается, если объект закрыт".
Запуск sp из-под MS Query Analizer даёт требуемый результат.
???

CREATE PROCEDURE CustOrdersOrders @CustomerID NCHAR(5)
AS
BEGIN
SELECT OrderID,
OrderDate,
RequiredDate,
ShippedDate
/*для последующей работы агрегатных ф-ций: */
--INTO #tmp
FROM Orders
WHERE CustomerID = @CustomerID
ORDER BY OrderID
/*здесь вычисление итогов (опущено)...
в реальной задаче ниже - более сложный запрос:*/
--SELECT * FROM #tmp
END

'-- Модифицированный пример из справки по ADO 2.6 --
'-- Calling a Stored Procedure with a Command --
'-- Поиск-->Искать следующие слова-->CustOrdersOrders

Sub Main()
CALL CodeSample()
END sub

Sub CodeSample()
Dim objConn AS NEW ADODB.CONNECTION
objConn.OPEN "Provider=SQLOLEDB.1;Data Source=(local);" & _
"Initial Catalog=Northwind;User Id=sa;Password=;"
Dim objCmd AS NEW ADODB.Command, objRs AS ADODB.Recordset
' Set CommandText equal to the stored procedure name.
objCmd.CommandText = "CustOrdersOrders"
objCmd.CommandType = adCmdStoredProc

objCmd.ActiveConnection = objConn ' CONNECT TO the data source
objCmd.Parameters.Refresh ' fill in parameter info from sp
objCmd(1) = "ALFKI" ' SET the param VALUE
SET objRs = objCmd.EXECUTE ' Execute once and display...

DO WHILE NOT objRs.EOF
DEBUG.PRINT vbTab & objRs(0) & vbTab & objRs(1) & vbTab & _
objRs(2) & vbTab & objRs(3)
objRs.MoveNext
LOOP

' ...then set new param value, re-execute command, and display.
objCmd(1) = "CACTU"
SET objRs = objCmd.EXECUTE

DO WHILE NOT objRs.EOF 'Debug.Print objParm1.Value
DEBUG.PRINT vbTab & objRs(0) & vbTab & objRs(1) & vbTab & _
objRs(2) & vbTab & objRs(3)
objRs.MoveNext
LOOP

objRs.CLOSE
objConn.CLOSE
'EndAutoParamCmd
END Sub
...
Рейтинг: 0 / 0
Recordset FROM sp WITH temporary TABLES
    #32096834
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Recordset FROM sp WITH temporary TABLES
    #32096883
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Andrew! Заработала-а-а!
...
Рейтинг: 0 / 0
Recordset FROM sp WITH temporary TABLES
    #32097192
Олег471
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто может ответить как найти Child в Mdi форме с помощью API
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Recordset FROM sp WITH temporary TABLES
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]