|
Recordset FROM sp WITH temporary TABLES
|
|||
---|---|---|---|
#18+
Уважаемые коллеги, подскажите,пожалуйста, как получить результат работы хранимой процедуры, возвращающей содержимое временной таблицы, в 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2003, 13:10 |
|
Recordset FROM sp WITH temporary TABLES
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2003, 15:13 |
|
Recordset FROM sp WITH temporary TABLES
|
|||
---|---|---|---|
#18+
Спасибо, Andrew! Заработала-а-а! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2003, 16:04 |
|
|
start [/forum/topic.php?fid=60&fpage=420&tid=2171460]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 136ms |
0 / 0 |