powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Хранимые процедуры в классическом ASP
1 сообщений из 1, страница 1 из 1
Хранимые процедуры в классическом ASP
    #32164600
Axl Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задавал вопрос, но ответа не нашел и сам топик где-то затерялся.
Нашел ответ сам, но долго искал, решил поделится может кому пригодится. Тема хоть и старая, но мне пришлось потрудится чтобы разрешить загадку.

Речь идет о вызове хранимых процедур в контексте объекта ADODB.Command
Чтобы правильно вызвать системную процедуру (конечно, при условии что она правильно создана и описана) необходимо:

1. Поместить в global.asa следующую строку:
Код: plaintext
<!--METADATA NAME= "Microsoft ActiveX Data Objects 2 . 5  Library" TYPE= "TypeLib"  UUID= "{00000205 - 0000 - 0010 - 8000 -00AA006D2EA4}"-->

Это даст возможность при задавать свойства объекта ADODB.Command при помощи литеральных констант, таких как adChar, adDecimal, adParamInput и т.д., а не цифр, которые довольно сложно запомнить.


2. Обязательно нужно указать свойство:
Код: plaintext
cmd.CommandType = adCmdStoredProc

Это необходимо для того чтобы во-первых SQL сервер однозначно определял свойство cmd.CommandText = "name_procedure", как имя системной процедуры. Во-вторых, по невыясненным причинам, если процедура все же неправильно написана (в моем случае отсутствовал оператор ROLLBACK TRAN), то сервер сообщает не о характере ошибки, а об отсутствующем входном параметре. Даже несмотря на то что все необходимые параметры уже присутсвуют в коллекции, в чем нетрудно убедится, выполнив следующий код:
Код: plaintext
1.
2.
For i =  0  to cmd.Parameters.Count- 1 
	Response.Write (  "<p>Parm ["  &cmd.Parameters.Item(i).Name	 &  "] = "  & cmd.Parameters.Item(i).Value &  "</p>" )
Next


Такие дела.
Для любителей кидаться кирпичами.
В прошлый раз когда я написал статью, я наслушался разного: "Ламерская статья", "Это не оптимально" и т.д. Мужики! Да я и не говорю что это лучший способ, или что я Америку открыл...
Но к сожалению, сложно найти по настоящему обстоятельный ответ. Профессионалы чаще отбрасываются короткими фразами, вместо того чтобы рассказать как действительно НАДО писать. Зачем тогда вообще писать?

Axl
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Хранимые процедуры в классическом ASP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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