powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с вызовом хранимой процедуры
10 сообщений из 10, страница 1 из 1
Проблема с вызовом хранимой процедуры
    #34081374
koket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть хранимая прцедура в 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>



Помогите разобраться в чем дело?
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34081894
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За давностию лет уже склероз как в asp это было, но точно помню, что был формат вызова именно стореды, а не текста с exec.

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34082555
koket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34082565
koket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто нибудь знает другой способ обращения к хранимым процедурам?
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34082586
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошо помогает объект ado.command
зы
зачем вам временная таблица ? для нумерации ?
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34082703
koket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-dukeхорошо помогает объект ado.command
зы
зачем вам временная таблица ? для нумерации ?


Временная таблица это так для примера просто я делал один пример без использования временных таблиц у меня ASP выводил все нормально а когда использую временные таблицы всегда выдает такую ошибку. А можно немнеого поподробнее насчет ado.command?
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34083074
koket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю обращение к хранимой процедуре при помощи 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>
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34083166
koket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34083401
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего проблема в том что 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 ...
...
Рейтинг: 0 / 0
Проблема с вызовом хранимой процедуры
    #34083449
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koket
With cmd
.ActiveConnection = cnn
.CommandType = adCmdStoredProc
.Commandtext = "TESTTABLE"
rs=.Execute
' или rs.open cmd
End with
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с вызовом хранимой процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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