Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
У меня есть хранимая прцедура в MSSQL в которой создаеться временная таблица и просто выводиться : Хранимая процедура ALTER PROCEDURE [dbo].[TESTTABLE] as CREATE TABLE #TEST ( [ID] bigint IDENTITY(1,1), IDold bigint, Automat char(24) ) INSERT INTO #TEST (IDold,Automat) SELECT TOP 10 [id],Automat FROM [i_dealer].[dbo].AutomatLog SELECT * FROM #TEST return При обращении к ней из ASP выдоет ошибку : ошибка Операция_не_допускается__если_объект_закрыт. вот в этой строке: if not rs.EOF then Вот код ASP обращающийся к процедуре: автор <%@LANGUAGE="VBSCRIPT" CODEPAGE="1251"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Инкасация</title> </head> <!--#include file="inc/Connection.asp"--> <body bgcolor="#DDFFCC"> <% Set cnn=Server.CreateObject("ADODB.Connection") Set rs=Server.CreateObject("ADODB.Recordset") cnn.open connect&";Initial Catalog=sms_d" rs.open "exec dbo.TESTTABLE", cnn, 1,3 if not rs.EOF then %> <table border="1" width="100%"> <tr> <th>Автомат</th> </tr> <% Do while not rs.EOF %> <tr> <td><%=rs("Automat")%></td> </tr> <%rs.movenext%><%loop%> </table> <% end if rs.Close cnn.Close Set rs = Nothing Set cnn = Nothing %> </body> </html> Помогите разобраться в чем дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2006, 18:14 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
За давностию лет уже склероз как в asp это было, но точно помню, что был формат вызова именно стореды, а не текста с exec. Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2006, 23:31 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 10:48 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Может кто нибудь знает другой способ обращения к хранимым процедурам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 10:50 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 10:56 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
big-dukeхорошо помогает объект ado.command зы зачем вам временная таблица ? для нумерации ? Временная таблица это так для примера просто я делал один пример без использования временных таблиц у меня ASP выводил все нормально а когда использую временные таблицы всегда выдает такую ошибку. А можно немнеого поподробнее насчет ado.command? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 11:18 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Делаю обращение к хранимой процедуре при помощи Command. Как извлечь данные что бы вывести их на экран. Знаю что в Recordset это было так <%=rs("Pole")%> а в случае с Command не знаю. Поскажите. Вот код: автор <%@LANGUAGE="VBSCRIPT" CODEPAGE="1251"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Инкасация</title> </head> <!--#include file="inc/Connection.asp"--> <!--#include file="inc/adovbs.inc"--> <body bgcolor="#DDFFCC"> <% Set cnn=Server.CreateObject("ADODB.Connection") cnn.open connect&";Initial Catalog=sms_d" Dim cmd Set cmd=Server.CreateObject("ADODB.Command") With cmd .ActiveConnection = cnn .CommandType = adCmdStoredProc .Commandtext = "TESTTABLE" .Execute End with set cmd=nothing %> <table border="1" width="100%"> <tr> <th>Автомат</th> </tr> <tr> <td><%=cmd("Automat")%></td> </tr> </table> <% cnn.Close Set cnn = Nothing %> </body> </html> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 12:27 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 12:44 |
|
||
|
Проблема с вызовом хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Скорее всего проблема в том что ASP получает как бы два Recordset-a из процедуры. Первый пустой и закрытый после команды INSERT INTO #TEST, второй уже с данными. У тебя два выхода: 1) Заключи команду INSERT INTO #TEST в блок SET NOCOUNT SET NOCOUNT ON INSERT INTO #TEST (IDold,Automat) SELECT TOP 10 ... SET NOCOUNT OFF 2) Переделай код ASP так чтобы он обрашался сразу к второму набору записей Set cnn = Server.CreateObject("ADODB.Connection") cnn.Open Set rs = cnn.Execute "exec dbo.TESTTABLE" Set rs = rs.NextRecordset If Not rs.EOF ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 13:24 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=845&tid=1388202]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 361ms |

| 0 / 0 |
