Есть много статей о ASP и сохраненных процедурах, но я сомневаюсь, что авторы фактически практиковали это. Я прочитал много соответствующей информации, когда я был в начале, и обнаружил, что многие из предоставленных методов не имели места на практике. Для простых приложений эти материалы могут быть полезными, но только потому, что они просто одинаковы, плагиации друг друга, и немного более сложные применения будут расплывчатыми.
Теперь я в основном получаю доступ к SQLServer, вызывая сохраненные процедуры. Следующий текст - это краткое изложение практики, и я надеюсь, что это будет полезно для всех.
Сохраненная процедура представляет собой одну или несколько команд SQL, хранящиеся в базе данных в качестве исполняемых объектов.
Определение всегда абстрактно. Хранилированные процедуры на самом деле представляют собой набор операторов SQL, которые могут завершить определенные операции, но этот набор операторов помещается в базу данных (мы будем говорить только о SQLServer здесь). Если мы создаем хранимые процедуры и вызовут хранимые процедуры в ASP, мы можем избежать смешивания операторов SQL с кодом ASP. Есть как минимум три преимущества этого:
Во -первых, значительно повысить эффективность. Сама хранящаяся процедура очень быстрая, и вызов хранящейся процедуры может значительно уменьшить количество взаимодействий с базой данных.
Во -вторых, повысить безопасность. Если операторы SQL смешаны в коде ASP, после того, как код будет потерян, это означает, что структура библиотеки теряется.
В -третьих, это способствует повторному использованию заявлений SQL.
В ASP хранимых процедур обычно вызываются через объекты команд. Согласно различным ситуациям, эта статья также вводит другие методы вызова. Для удобства объяснения, следующая простая классификация сделана на основе ввода и вывода хранимой процедуры:
1. Возврат только сохраненные процедуры для одного набора записей
Предположим, существует следующая хранимая процедура (цель этой статьи не состоит в том, чтобы описать синтаксис T-SQL, поэтому хранящаяся процедура дает только код и не объясняет):
/*Sp1*/
Кода -копия выглядит следующим образом:
CreateProceduedBo.getUserList
как
SetNocounton
Начинать
выберите*fromDbo. [userInfo]
конец
идти
Приведенная выше хранимая процедура получает все записи в таблице пользователя и возвращает набор записей. Код ASP для вызова хранимой процедуры через объект команды выглядит следующим образом:
'** Вызов процедуры через объект команды **
Dimmycomm, мирст
Setmycomm = server.createObject ("adodb.command")
MyComm.ActiveConnection = myConstr'MyConstress - это строка подключения к базе данных
Mycomm.commandtext = "getUserlist" 'Укажите имя сохраненной процедуры
Mycomm.commandtype = 4 'указывает, что это хранимая процедура
Mycomm.prepared = true 'требует сначала команды SQL
Setmyrst = mycomm.execute
Setmycomm = ничего
Набор записей, полученный хранимой процедурой, присваивается Myrst. Далее, Myrst можно управлять.
В приведенном выше коде свойство CommandType указывает тип запроса, значение и описание следующие: