powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Запуск сохраненной процедуры из asp
11 сообщений из 11, страница 1 из 1
Запуск сохраненной процедуры из asp
    #32991262
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите плиз.
Сабж собственно.
Есть SQL сервер: myserver
На нем БД: mybasa
В ней процедура: myproced (без входных параметров)
как мне из простого ASP запустить эту процедуру?
Я делаю так:

Код: plaintext
1.
2.
3.
4.
5.
Dim StrConn
StrConn="PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER=myserver;DATABASE=mybasa;UID=user1;PWD=pass1;"
Dim MyCONN
set MyCONN = Server.CreateObject("ADODB.Connection")
MyCONN.Open StrConn
MyCONN.Execute "TransferFromBaltBank"
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32991270
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее
Код: plaintext
1.
2.
...
MyCONN.Execute "myproced"
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32991344
JRM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JRM
Гость
Код: plaintext
MyConn.Execute "exec myproc"
- а может так вызвать?
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32991494
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не работает
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32991620
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IHMO, это неверно, MyConn - это коннект, а для выполнении нужно использовать command
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32991672
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во-первых, хотя это не влияет на выполнение хранимой процедуры, но зачем был использован ODBC, хотя в ADO достаточно OLE DB, которое будет использовано в любом случае.


Почему не работает:
1) в MS SQL при вызове хранимой процедуры в названии процедуры иногда может быть необходимо указать имя её владельца.
2) Фиг его знает, но х.п. можно вызывать по-другому:

Set cn = Server.CreateObject ("ADODB.Connection")

'выбрать тип курсора:
cn.CursorLocation = ... 'adUseServer, adUseClient или adUseNone

'строка соединения:
strConn = "Provider=SQLOLEDB;... итд"

'создать объект команды:
Set cmd = Server.CreateObject ( "ADODB.Command")
cmd.ActiveConnection = cn

'указать, что команда будет вызывать х.п.:
cmd.CommandType = adCmdStoredProc

cmd.CommandText="имя процедуры"
'получаем набор записей результата:
Set rs = cmd.Execute


Здесь используются константы из ADO (напр., adCmdStoredProc = 4)
их можно получить - или импортировать библиотеку типов ADO, или есть включаемый файл с этими константами (кажется, в Platform SDK), или в докуметации по ADO приведена таблица значений.
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32992682
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4Bagin
Можно использовать connection для SP как написал JRM
Другое дело, что Command дает более тонкую настройку SP в плане передачи и приема значений. А для простых SP можно и connecttion.

...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32992741
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-duke4Bagin
Можно использовать connection для SP как написал JRM
Другое дело, что Command дает более тонкую настройку SP в плане передачи и приема значений. А для простых SP можно и connecttion.

Понял, буду учитывать. Спасибо за информацию! :-)
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32992865
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал и через SQLOLEDB и CommandType прописывал.
Не работает. Ошибку выдает как на рисунке
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32993858
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут ошибка в строке соединения или нет доступа к базе (проверить по MS SQL Enterprise Manager).
типичная строка для OLE DB (из моей программы):

"Provider=SQLOLEDB;DATABASE=ms8400tif;data Source=PARTISAN\MSSQL0;Initial Catalog=ms8400tif;User Id=Samurai;UID=Samurai;Password="

(посмотреть в документации назначение параметров).

проверить, правильные ли в ней имя, пароль итд.

Для отладки можно с тем же успехом применить соединение через ODBC, это для работы я рекомендовал OLE DB потому что если указать строку соединения ODBC, то ADO обратится к OLE DB, которое обратится к ODBC. Т.е. будет лишний этап при доступе к данным. Правда,может оказаться, что OLE DB расходует больше памяти (при большом наборе записей результата). Это из-за того, что ODBC втоматически создаст серверный курсор для ограничения количества записей, иначе придётся позаботиться самому (следить за расходом памяти).
...
Рейтинг: 0 / 0
Запуск сохраненной процедуры из asp
    #32997180
kostyamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на сколько я помню SQL provider понимает два формата запросов по SP
SQL - "EXEC <proc. name> [param1][,param2]
а также
ODBC - "{CALL <proc. name.> [(param1[,param2])]}"

и ка бы статься от самого MS не рекомендовала пользоваться старым ODBC форматом вызова.

причем порядок работы с Command и Parameters не меняется

а вообще можно прекрасно и просто через Connection выполнять если не интересует возвращаемое значение
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Запуск сохраненной процедуры из asp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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