Лекция ASP 6: ASP и база данных (1)
Автор:Eve Cole
Время обновления:2009-05-30 19:55:05
В предыдущих лекциях мы изучили основное содержание ASP. Гибко используя эти знания, вы уже можете использовать ASP для создания веб-сайта. Но, вообще говоря, реальный и полноценный веб-сайт не может быть отделен от базы данных, поскольку небольшой объем данных, например количество посетителей веб-страницы, может храниться в текстовых файлах, но в реальных приложениях данные, которые необходимо Сохраненные данные — это гораздо больше, чем это. По крупицам, и эти данные часто связаны, используя базу данных для управления этими данными, которые можно легко запрашивать и обновлять. Существует множество типов баз данных, таких как: база данных Fox (.dbf), база данных Access (.mdb), Informix, Oracle и SQL Server и т. д. В этой лекции я буду использовать базу данных Microsoft Access и SQL Server 7.0 в качестве примеров для проиллюстрируйте ASP, как получить доступ к базе данных. Почему стоит выбрать АСП? Статистика показывает, что SQL Server 7.0 в настоящее время является самой быстрой и экономически эффективной базой данных, а многие крупные веб-сайты, такие как www.8848.net, www.dell.com, www.hotbot.com, созданы с использованием технологии ASP, поэтому ASP относительно простая в освоении и очень практичная технология. Вам следует попытаться подойти к ней, понять ее, а затем использовать ее с уверенностью и смелостью.
Какие приготовления следует провести перед дальнейшим исследованием:
1. Если вы никогда не сталкивались с базами данных, рекомендуется сначала установить Microsoft Access в Office и изучить базовые знания о базах данных.
2. Лучше всего установить Microsoft SQL Server 7.0. После установки его можно использовать сразу же без каких-либо настроек. Обратите внимание, что версию DeskTop следует устанавливать в Windows 9.x, а версии до 7.0 можно устанавливать только в NT Server.
3. Для содержимого, обсуждаемого далее, требуется компонент под названием MDAC (компоненты доступа к данным Microsoft). Этот компонент уже включен в ASP. Если вы хотите узнать больше о соответствующем содержимом или загрузить последнюю версию, посетите http://www. microsoft.com/data.
1. Установление соединения с базой данных. Прежде чем официально начать, позвольте мне представить ADO — объекты данных ActiveX. Если вы новичок в этой концепции, вам нужно думать об ADO только как о мосте между ASP и базой данных.
(1) Способ 1 для установки соединения с базой данных Microsoft Access: пример wuf40.asp
<% @LANGUAGE = VBScript %>
<% 'wuf40.asp
Опция явная
Дим Cnn, StrCnn
' 1 - Создать объект соединения
Установить Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("asp") & "NorthWind.mdb;"
'2 — открыть базу данных, используя метод Open объекта Connection.
Cnn.Open StrCnn
Response.Write Server.MapPath("asp") & "NorthWind.mdb;" & "<br>"
Response.Write "Подключение к базе данных успешно: " & Cnn.State & "<br>"
'3 — Закройте соединение, используя метод Close объекта Connection.
Cnn.закрыть
Response.Write «База данных закрыта:» & Cnn.State
'4 - Удалить объект Connection из памяти, чтобы освободить ресурсы
Установить Cnn = Ничего
%>
Northwind.mdb — это образец базы данных, поставляемый с Microsoft Access97. Обычно он находится в каталоге «Microsoft OfficeOfficeSamples». Вы можете найти его самостоятельно, а затем скопировать этот файл в соответствующий каталог веб-сервера (в этот). например, поместите его в C:InetPubhomeasp).
Здесь метод MapPath объекта Сервер преобразует указанный виртуальный путь в реальный путь к файлу, и конечный результат аналогичен: C:InetPubhomeaspNorthwind.mdb.
Способ 2. Используйте OLE DB для создания подключения Microsoft Access. Ключевые части перечислены ниже.
Установить Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
(2) Способ 1 для установки соединения с базой данных SQL Server: используйте OLE DB для подключения к SQL Server. Дополнительные сведения см. в процедуре wuf41.asp.
Установить Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider=sqloledb; Идентификатор пользователя=sa; Пароль=; Начальный каталог=pubs; Источник данных=ICBCZJP"
Cnn.Open StrCnn
Укажите имя базы данных после «Исходного каталога» и имя компьютера после «Источника данных» (то есть имя компьютера в разделе «Сеть» → «Свойства» → «Идентификация») или IP-адрес (должна быть установлена служба DNS).
Способ второй:
Установить Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={SQL Server};Server=ICBCZJP;UID=sa;PWD=;Database=pubs"
Cnn.Open StrCnn
Помимо двух вышеперечисленных методов, конечно, вы также можете использовать самый классический метод, представленный во многих статьях и материалах: использование ODBC для генерации соединения. То есть сначала необходимо установить соединение в «Источниках данных ODBC» на панели управления веб-сервером, а затем использовать строку подключения, аналогичную «StrCnn ="DSN=ADOCnn; UID = sa;PWD=;Database=pubs»» в ASP. . Подробно описывать здесь не буду. Во-первых, это не лучший метод. Во-вторых, этот метод представлен в других материалах.
Кроме того, если вам интересно, вы можете загрузить программу wuf42.asp, чтобы узнать, как использовать свойства ConnectionTimeout и ConnectionString объекта Connection.
2. Здесь начинается база данных — получение данных, которые уже существуют в базе данных. Предполагается, что вы уже обладаете базовыми знаниями о базе данных и умеете использовать Microsoft Access, чтобы открыть таблицу «Отправитель» в Northwind.mdb и просмотреть ее. данные, хранящиеся в таблице. Несколько фрагментов данных. Теперь вопрос в том, как использовать ASP для отображения этих данных в браузере. Вот три метода.
Особое напоминание: если основа вашей базы данных слаба, вам нужно использовать только второй метод. Не жадничайте, чтобы не зайти слишком далеко, поэтому помните! Помнить!
Способ 1: используйте только объект Connection. Пример wuf43.asp
<% @LANGUAGE = VBScript %>
<% 'wuf43.asp
Опция явная
«Это предложение очень важно, оно может гарантировать, что данные, которые вы видите, не являются данными, кэшированными на клиенте.
'Но последние данные обновляются в любое время на стороне сервера
Ответ.Истекает = 0
'Часть 1: Установление соединения
Дим Cnn, StrCnn
Установить Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
'Часть 2. Используйте метод Execute объекта Connection для получения набора записей.
Дим StrSQL, rsTest
«Ниже приведен оператор SQL (оператор структурированного запроса), который не будет подробно описываться в этой лекции». Рекомендуется прочитать эту книгу. Основные принципы ее использования относительно просты, и вы сможете изучить ее, как только освоите.
'Это предложение означает выбор всех данных из таблицы несущих
StrSQL = "Выбрать * От отправителя"
Установите rsTest = Cnn.Execute(StrSQL)
%>
<HTML>
<ТЕЛО>
<% 'Часть 3: Отображение полученного набора записей в браузере
'Цикл до конца записи - отображение построчно, запись за записью
Делайте, пока не rsTest.EOF
'Следующие две строки имеют одинаковый эффект, то есть rsTest("Идентификатор отправителя") эквивалентен rsTest(0)
Response.Write rsTest("Идентификатор отправителя") & " " & rsTest("Название компании") & " " & rsTest("Телефон") & " " & "<BR>"
'Response.Write rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
'Перейти к следующей записи - это предложение нельзя опускать, иначе оно попадет в бесконечный цикл
rsTest.MoveNext
Петля
'Часть 4: Зачистка поля боя
Cnn.закрыть
Установить rsTest = Ничего: Установить Cnn = Ничего
%>
</ТЕЛО>
</HTML>
Этот пример очень простой. Третья часть показывает данные в типичном стиле вывода базы данных. Вы можете обратиться к ранее полученным знаниям и добавить таблицы и цвета, чтобы украсить выходные данные.
Неопытные пользователи могут обратиться к wuf44.asp, чтобы увидеть полное использование метода Execute.
Способ 2. Создав объект Recordset — помните, что новичкам достаточно освоить этот метод.
Пример: wuf45.asp, остальные части такие же, как wuf43.asp, ключ лежит во второй части программы.
'Часть 2. Получите набор записей, создав объект RecordSet.
Дим StrSQL, rsTest
'Создаем объект набора записей
Установите rsTest = Server.CreateObject("ADODB.Recordset")
StrSQL = "Выберите идентификатор оператора, номер телефона, название компании. От оператора связи. Где номер телефона = '(503) 555-9931'"
'Прикрепляем объект Recordset к соединению Cnn
Установите rsTest.ActiveConnection = Cnn
'Открываем набор записей, используя метод Open объекта Recordset
rsTest.Open StrSQL
Теперь давайте посмотрим на полное использование метода Open объекта Recordset, например wuf48.asp.
<% @LANGUAGE = VBScript %>
<% 'wuf48.asp
Опция явная
Ответ.Истекает = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Часть 1: Установление соединения
Дим Cnn, StrCnn
Установить Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
'Часть 2. Получите набор записей, создав объект RecordSet.
Дим рстест
Установите rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.Open «Отправитель», Cnn, adOpenForwardOnly, adLockReadOnly, adCmdTable
%>
<HTML>
<ТЕЛО>
<% 'Часть 3: Отображение полученного набора записей в браузере
Делайте, пока не rsTest.EOF
Response.Write rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
rsTest.MoveNext
Петля
'Часть 4: Зачистка поля боя
rsTest.Close: Cnn.Close
Установить rsTest = Ничего: Установить Cnn = Ничего
%>
</ТЕЛО>
</HTML>
анализировать:
1. Сначала обратите внимание на ключевые предложения:
rsTest.Open «Отправитель», Cnn, adOpenForwardOnly, adLockReadOnly, adCmdTable
Первым параметром может быть имя таблицы (например, экспедитор) или инструкция SQL (например, wuf45.asp).
Второй параметр указывает текущее соединение.
Третий параметр указывает CursorType, который определяет тип курсора, который поставщик должен использовать при открытии набора записей. При этом используется курсор, который движется только вперед.
Четвертый параметр указывает LockType, который определяет тип блокировки (параллелизма), который поставщик должен использовать при открытии набора записей. Укажите здесь только чтение.
Пятый параметр связан с первым параметром. Если первый параметр в этом примере — это имя таблицы, то пятый параметр использует adCmdTable. Если первый параметр — это инструкция SQL, первым параметром является adCmdText, например:
rsTest.Open «Выбрать * от оператора связи», Cnn,adOpenForwardOnly,adLockReadOnly,adCmdText
Я не думаю, что большинство людей действительно смогут понять значение этих пяти параметров. Вначале это не имеет значения, просто скопируйте их и используйте. В дальнейшем мы продолжим общение и станем. идеальны, когда мы к ним привыкаем.
Два параметра CursorType и LockType будут подробно описаны ниже. Чтобы получить данные, вам нужно всего лишь установить их в соответствии с этим примером.
2. Эти пять параметров также можно задать с помощью свойств объекта Recordset, например wuf46.asp.
'Часть 2. Получите набор записей, создав объект RecordSet.
Дим рстест
Установите rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.ActiveConnection = Cnn
rsTest.CursorType = adOpenForwardOnly
rsTest.LockType = adLockReadOnly
rsTest.Open «Отправитель», , , ,adCmdTable
3. Посмотрите на это предложение еще раз: <!--#include file="adovbs.inc"-->.
(1) Поскольку используются такие константы, как adOpenForwardOnly, adLockReadOnly и adCmdText, необходимо включить файл adovbs.inc.
(2) Файл adovbs.inc обычно находится в каталоге Program FilesCommon FilesSYSTEMADO. Вы можете скопировать его в текущий каталог веб-сервера (этот файл также включен в пакет загрузки для этой лекции). .
(3) Откройте этот файл с помощью Блокнота и посмотрите, и вы поймете, зачем этот файл нужен.
Способ третий: вводя объект «Команда» — его следует изучать, исходя из ваших способностей.
<% @LANGUAGE = VBScript %>
<% 'wuf47.asp
Опция явная
Ответ.Истекает = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Часть 1: Установление соединения
Дим Cnn, StrCnn
Установить Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
'Часть 2. Получите набор записей, создав объект Command.
Тусклый StrSQL, rsTest, cmdTest
'Создать объект команды
Установите cmdTest = Server.CreateObject("ADODB.Command")
StrSQL = "ВЫБРАТЬ MAX(количество) ИЗ сведений о заказе"
cmdTest.CommandText = СтрSQL
cmdTest.CommandType = adCmdText 'Указывает, что тип команды является оператором SQL.
Установите cmdTest.ActiveConnection = Cnn
'Используйте метод Execute объекта Command, чтобы получить набор записей.
Установите rsTest = cmdTest.Execute
%>
<HTML>
<ТЕЛО>
<% 'Часть 3: Отображение полученного набора записей в браузере
Делайте, пока не rsTest.EOF
Response.Write rsTest(0) & "<BR>"
rsTest.MoveNext
Петля
'Часть 4: Зачистка поля боя
rsTest.Close: Cnn.Close
Установить rsTest = Ничего: Установить cmdTest=Ничего: Установить Cnn = Ничего
%>
</ТЕЛО>
</HTML>
Использование объекта Command будет объяснено в будущем при углубленном программировании базы данных.
В этой лекции в основном рассказывается о том, как подключиться к базе данных и получить данные из базы данных. Новички неизбежно будут немного сбиты с толку. Помните, вам нужно изучить только следующие моменты:
1. Как использовать OLE DB для установления соединения с базой данных Microsoft Access;
2. Как использовать OLE DB для установления соединения с базой данных Microsoft SQL Server;
3. Как получить данные из базы данных, создав объект Recordset.