Использование хранимых процедур для реализации доступа к базе данных ASP
Автор:Eve Cole
Время обновления:2009-06-24 17:21:43
1. Обзор ADO
Объекты данных ActiveX (ADO) — это простая в использовании и масштабируемая технология для добавления доступа к базе данных на ваших веб-страницах. Вы можете использовать ADO для написания кратких и масштабируемых сценариев для подключения к OLE DB-совместимым источникам данных, таким как базы данных и электронные таблицы. , последовательные файлы данных или каталоги электронной почты. OLE DB — это программный интерфейс системного уровня, предоставляющий набор стандартных COM-интерфейсов для отображения функций системы управления базами данных. Используя объектную модель ADO, вы можете легко получить доступ к этим интерфейсам (с помощью языка сценариев, такого как VBScript или JScript) и добавить функциональность базы данных в свое веб-приложение. Кроме того, вы можете использовать ADO для доступа к базам данных, совместимым с Open Database Connectivity (ODBC).
Если вы являетесь автором сценариев и имеете некоторые знания о взаимосвязях баз данных, синтаксис команд ADO покажется вам простым и легким в использовании. Если вы опытный разработчик, вы оцените масштабируемый и высокопроизводительный доступ, который ADO предоставляет к различным источникам данных.
2. Общие способы доступа к базе данных. Доступ к базе данных в общем доступе к веб-странице осуществляется по следующим шагам: сначала создайте объект интерфейса ADODB.Connection, а затем привяжите к этому объекту соответствующий источник данных. можно использовать именованный источник данных и безымянный источник данных), создать или не создавать набор записей по мере необходимости, а затем связать его с источником данных и использовать метод выполнения или открытия для работы с соответствующей таблицей.
Общий метод доступа ASP к базе данных:
<
Set oConn=Server.CreateObject("ADODB.Connection")
Установить oRS=Server.CreateObject("ADODB.RecordSet")
set strConn="Provider=SQLOLEDB;User ID=sa; Initial Catalog=Pubs;Data Source=" &request.ServerVariables("SERVER_NAME")
oConn.open strConn
set ORS=oConn.execute("выбрать * из теста")
>
Выше описано, как использовать OLEDB для безымянных ссылок. Если это именованная ссылка, установите ее в качестве теста источника данных, а имя пользователя и пароль пусты. Вам нужно только переписать приведенный выше оператор oConn.open «test». ,"",""
Выше кратко представлены общие методы доступа к базе данных на веб-страницах. Они уже очень зрелы и очень полезны. Если доступ к определенным данным на практике слишком сложен, для написания потребуется около 10 операторов SQL. немного не хватает. Кроме того, иногда необходимо использовать один и тот же процесс обработки на разных веб-страницах, и это наиболее выгодно использовать хранимые процедуры. Еще одна важная особенность заключается в том, что хранимые процедуры являются очень техническими. Конфиденциальность является относительно высокой. и он хранится в базе данных удаленного сервера.
3. Использование хранимых процедур в ASP ADO обеспечивает доступ к хранимым процедурам, что требует использования объекта команды. На этом объекте пользователи могут напрямую выполнять хранимые процедуры SQL-сервера, а параметры, необходимые в команде, могут быть заданы. Он обрабатывается с использованием его свойств Pamaters.
Обратите внимание: чтобы объект Command был действительным, он должен быть связан с объектом Connection, задав для свойства ActiveConnection объекта Command значение объекта Connection. Если объект Connection не может быть идентифицирован, объект Command недействителен, пока вы не свяжете его с соединением.
< Тусклый oКонн
Dim strConn
Тусклый oCmd
Дим oRs,ors1
тусклый аа
димсквел
Установите oConn = Server.CreateObject("ADODB.Connection")
set oCmd = Server.CreateObject("ADODB.Command")
set ors1=Server.CreateObject("ADODB.RecordSet")
'Откройте ссылку, используйте идентификатор пользователя SA, пароль пустой, подключитесь к базе данных на локальном сервере
strConn="Provider=SQLOLEDB;User ID=sa;Initial Catalog=pubs;Data Source="& Request.ServerVariables("SERVER_NAME")
«Если вы подключаетесь к удаленной базе данных, адрес базы данных: 10.82.88.105, пользователь — tmp, а пароль — 123.
'Можно использовать следующий метод' strConn="Provider=SQLOLEDB;User ID=tmp;pwd=123;Initial Catalog=tjbb;Data Source="& "10.82.88.110"
oConn.Open strConn
'Добавляем установленную ссылку в атрибут активной ссылки команды
Установите oCmd.ActiveConnection = oConn
'Установите вызывающую хранимую процедуру по королевству и параметрам, параметры? представлять
oCmd.CommandText = "{вызов byroyalty(?)}"
oCmd.Parameters.Append oCmd.CreateParameter("@Percentage", adInteger, adParamInput)
' Указываем входные параметры
oCmd("@Percentage") = 75
«Использование вышеуказанных входных параметров в asp также может быть достигнуто без атрибутов параметров, просто используйте & в VB для формирования соответствующих данных в тексте команды». Использование параметров особенно полезно во время вывода
Установите oRs = oCmd.Execute
ors1.activeconnection=oconn
'Общие инструкции SQL также можно использовать в этом объекте команды, используя атрибуты Source и open, где источник указывает источник данных.
ors1.source="выберите * из [tmptable], где год=2000 и месяц=1"
ors1.cursorttype=adopenstatic
ors1.open
>
4. Введение в хранимые процедуры в SQL. Используя язык SQL, вы можете писать хранимые процедуры для доступа к базе данных. Синтаксис следующий:
CREATE PROC[EDURE] имя_процедуры [;номер]
[
{@parameter data_type} [ВАРИАНТ] [= по умолчанию] [ВЫХОД]
]
[,...н]
[С
{
ПЕРЕКОМПИЛИРОВАТЬ
ШИФРОВАНИЕ
ПЕРЕКОМПИЛЯЦИЯ, ШИФРОВАНИЕ
}
]
[ДЛЯ РЕПЛИКАЦИИ]
КАК
sql_statement [...n]
Содержимое внутри [ ] не является обязательным, а содержимое внутри () является обязательным.
Пример: если пользователь хочет создать хранимую процедуру Select_delete для удаления записей в таблице tmp, ее можно записать так:
Создать процедуру select_del As
Удалить tmp
Пример: пользователь хочет запросить хранимую процедуру для получения данных за определенный год в таблице tmp.
создать процедуру select_query @year int as
выберите * из tmp, где год=@год
Здесь @year — пример параметра хранимой процедуры: эта хранимая процедура начинается с определенного узла n, чтобы найти родительский узел верхнего уровня. Этот часто используемый процесс может выполняться хранимой процедурой и может повторно использоваться на веб-страницах для достижения цели. делюсь.
Пусто: указывает, что узел является узлом верхнего уровня.
fjdid (номер родительского узла)
Узел n не пуст: указывает номер родительского узла узла.
dwmc (имя юнита)
CREATE proc search_dwmc @dwidold int, @dwmcresult varchar(100) вывод
как
объявить @stop int
объявить @result varchar(80)
объявить @dwmc varchar(80)
объявить @dwid int
установить nocount на
установите @stop=1
установите @dwmc=""
выберите @dwmc=dwmc,@dwid=convert(int,fjdid) из jtdw, где id=@dwidold
set @result=rtrim(@dwmc)
если @dwid=0
установить @stop=0
в то время как (@stop=1) и (@dwid<>0)
начинать
set @dwidold=@dwid
выберите @dwmc=dwmc,@dwid=convert(int,fjdid) из jtdw, где id=@dwidold
если @@rowcount=0
установите @dwmc=""
еще
set @result=@dwmc+@result
если (@dwid=0) или (@@rowcount=0)
установить @stop=0
еще
продолжать
конец
set @dwmcresult=rtrim(@result)
Полное и разумное использование хранимых процедур позволяет повысить производительность сервера. Автор использует хранимые процедуры для получения данных из почти 20 таблиц и объединения их в общую таблицу, генерируя около 20 000 записей, а необходимое время составляет около 7 секунд. операция может улучшить разработку сервера на более высокий уровень с помощью более разумных динамических веб-страниц, полностью используя хранимые процедуры, что может уменьшить тяжелую обработку, вызванную веб-дизайном, так что написанный код можно будет совместно использовать и разумно использовать, а также код может быть скрыт внутри базы данных сервера, некоторые технологии остаются конфиденциальными. Это также важная особенность хранимых процедур. Я надеюсь, что читатели смогут извлечь из этого пользу.