ASP имеет одну из наиболее важных функций: он позволяет очень легко подключаться к базе данных. Обычно он подключен к базе данных Access или SQL. Поскольку начать работу с Access проще всего и Access уже может быть установлен на вашем компьютере, мы будем использовать Access в следующих примерах. Как только вы изучите основные технические методы соединения баз данных ASP и Access и начнете использовать SQL-сервер, вы обнаружите, что ключевые технологии, необходимые для обоих, в основном одинаковы.
Создайте имя источника данных (DSN)
Вы можете сделать свою базу данных доступной для использования в ASP, создав системный DSN для вашей базы данных на панели управления. Вы можете создать несколько DSN на своем локальном компьютере, каждый DSN будет соответствовать отдельной базе данных, которую вы используете. После настройки DSN вы можете протестировать свою страницу на локальном сервере. Если ваш веб-сайт
обслуживается интернет-провайдером, и интернет-провайдер поддерживает ASP, то весьма вероятно, что он предоставит графический интерфейс для создания DSN для вашей базы данных.
В Windows 95/98/NT откройте панель управления (меню «Пуск» -> «Настройки» -> «Панель управления») и дважды щелкните ODBC, чтобы войти.
Выберите системный DSN и нажмите «Добавить».
Выберите «Драйвер Microsoft Access» и нажмите «Готово».
Введите имя источника данных. Это имя, которое вы даете своей базе данных, поэтому это та же операция, что и псевдоним.
Нажмите кнопку «Выбрать» при выборе базы данных, чтобы просмотреть место в системе, где хранится созданная вами база данных Access.
Нажмите ОК
Новый DSN теперь появится в системном DSN и будет доступен на вашем локальном сервере.
Подключение к базе данных Давайте настроим соединение без DSN и посмотрим, как подключиться к базе данных. Когда вы создаете DSN, вы уже сохраняете некоторую информацию о базе данных, поэтому вам не нужно повторять ее каждый раз, когда вам нужно использовать некоторую информацию, такую как тип базы данных, имя, место хранения и дополнительные свойства, пользователи и пароли.
Чтобы создать соединение без DSN, вам необходимо предоставить ту же информацию. В следующем примере показано, как установить соединение без DSN с базой данных продуктов:
<%
StrConnect = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:dbproducts.mdb"
Установите objConn = Server.CreateObject («ADODB.Connection»)
objConn.OpenStrConnect
%>
Вторая строка определяет драйвер и физический путь к базе данных. Чтобы использовать соединение без DSN, вам необходимо знать фактическое расположение файла (абсолютный путь). Server.MapPath предоставляет всем, кто использует услуги хостинга, простую рабочую среду для поиска труднодоступных реальных путей доступа.
Если мы создали системный DSN с именем Products, код подключения должен быть:
<%
Установите objConn = Server.CreateObject («ADODB.Connection»)
objConn.Откройте «продукты»
%>
Теперь, когда база данных открыта, что вы можете сделать? Первым делом, конечно, нужно прочитать ряд записей в базе данных и поместить их на свою страницу. Но перед этим вам понадобится набор записей.
Набор записей
Набор записей — это вся информация, хранящаяся в специальной таблице базы данных. Таким образом, когда вы открываете этот набор записей, становится доступным содержимое всех строк и столбцов таблицы. Вам нужно открыть этот набор записей так же, как вам нужно открыть соединение с базой данных. Их команды аналогичны:
Set objRec = Server.CreateObject («ADODB.Recordset»)
objRec.Open «downloadable», strConnect, 0,1,2
создает набор записей (objRec) с именем «загружаемая таблица», который определен в strConnect в базе данных продуктов. Открыв набор записей, мы можем просмотреть эту таблицу и отобразить все ее содержимое на экране. Альтернативно, мы можем протестировать содержимое конкретных полей или просто написать на экране то, что нас волнует.
Каждый столбец представляет поле. Итак, если таблица базы данных выглядит следующим образом:
Идентификатор продукта | SKU | Имя | Файл |
1 | PR12345 | Продукт A | install_a.exe |
2 | PR12346 | Продукт B | Install_b.exe |
Затем у нас есть содержимое следующих полей: ProductID, SKU, Name и File. В вашей таблице, скорее всего, будет много дополнительных полей, которые могут содержать множество вещей, например, цену или описание продукта (товара). Но эта схематическая диаграмма может дать вам самое базовое представление о таблицах базы данных.
Заполнить содержимое набора записей очень просто с помощью набора записей. Если вы хотите просмотреть базу данных и вывести всю информацию на экран, вы можете сделать следующее:
Пока НЕ objRec.EOF
' говорит делать это до тех пор, пока мы не достигли конца файла
Response.WriteobjRec("ProductID") & ", "
Response.WriteobjRec("SKU") & ", "
Response.WriteobjRec("Имя") & ", "
Response.WriteobjRec("Файл") & "<BR>"
objRec.MoveNext
Венд;
Даже если вы не использовали циклы таким образом, вы все равно можете прочитать этот код для записи информации в строки, разделенные запятыми, и когда в таблице базы данных создается новая строка, создайте новую строку для записи этой строки в таблице. Вы можете использовать тот же метод для записи данных в таблицу HTML. Используя Response.Write для добавления тегов TABLE, следует помнить о нескольких вещах:
тегах HTML и содержимом в кавычках.
Если в ваших тегах или контенте используются кавычки, обязательно используйте двойные кавычки:
<РАЗМЕР ШРИФТА=""+2"">.
Используйте & для подключения переменных и информации HTML/контента для выбора полей в наборе записей. Предположим, что наша база данных продуктов также содержит поле с именем OS. Предположим, что это поле является разделителем платформы. Опять же, предположим, что данные, хранящиеся в этом поле, могут быть только следующими: Windows NT, Windows 95, Windows 98, Windows, Mac, Unix или Linux.
Далее мы можем подтвердить, какие поля нам нужно вывести на экран, а какие поля мы хотим игнорировать. Альтернативно мы можем выбрать, какие поля используют один формат, а другие поля — другой формат, например, используя разные цвета.
Использование простого цикла If... может дать нам больше контроля над базой данных. Сначала давайте распечатаем записи о продуктах Windows NT:
<TABLE BORDER=0 WIDTH=600>
<TR><TD COLSPAN=4 ALIGN=CENTER><FONT SIZE="+1"<<B>Продукты Windows NT</B></FONT></TD></ ТР>
<%
While NOT objRec.EOF
If objRec("OS") = "Windows NT" THEN ' определяет критерии
Response.Write "<TR><TD BGCOLOR=""#FFFF66"">" & objRec("ProductID") & " </TD>"
Response.Write "<TD>" & objRec("SKU") & "</TD>"
Response.Write "<TD>" & objRec("Name") & "</TD>"
Response.Write "<TD>" & objRec("File") и "</TD></TR>"
завершаются, если
objRec.MoveNext
Венд
%>
</ТАБЛИЦА>
Добавление записи Как только вы начнете использовать наборы записей и ASP, вам действительно захочется иметь возможность добавлять данные в базу данных по сети. Добавление контента важно, например, когда вам нужно, чтобы ваши посетители оставляли свои взгляды и мнения, или когда вы хотите проводить административные обновления.
Следующий код открывает набор записей, связанный с таблицей базы данных с названиями книг и их авторов. Вы, наверное, видели это раньше, но на этот раз последние три спецификации определяют разные типы указателей: adOpenStatic, adLockOptimistic, adCmdTable:
<% ' код подключения к базе данных здесь не показан;
Установите objRec = Server.CreateObject («ADODB.Recordset»)
objRec.Open "книги", bookdb, adOpenStatic, adLockOptimistic, adCmdTable
%>
(Если вы не используете файл копии adovbs.inc, третья строка должна быть следующей: objRec.Open "books", bookdb, 3,3,2).
Набор записей теперь готов к приему данных, вам нужно только это)
.сказать ему, что добавить. В данном случае, допустим, мы берем переменные из таблицы: strBookTitle и strBookAuthor. В нашей таблице «книги» есть два поля: «Название» и «Автор», поэтому мы можем добавить новую запись, используя следующий оператор:
<%
objRec.AddNew
ObjRec("Название") = strBookTitle
objRec("Автор") = strBookAuthor
objRec.Update
%>
strBookTitle и strBookAuthor представляют значения и обычно доступны пользователям. Если вы просто хотите протестировать функцию добавления, вы можете добавить переменную для заголовка и автора — только не забудьте использовать кавычки. При первом использовании вы, вероятно, сразу же откроете базу данных, чтобы убедиться в наличии обновлений.
Тип набора записей В показанном примере objRec.Open в конце вы найдете слова 0, 1 и 2. Эти числа представляют разные типы указателей. Тип, который вы используете, зависит от того, для чего вы будете его использовать. Например, если вам не нужно изменять или добавлять какие-либо записи, вы можете использовать тип блокировки. Если вы планируете изменить или обновить базу данных, выбранный вами тип будет другим.
0,1,2 на самом деле представляет собой:
adOpenForwardOnly, adLockReadOnly, adCmdTable.
Конечно, если у вас уже есть резервная копия adovbs.inc, вы также можете использовать эти слова напрямую, не используя цифры. adovbs.inc содержит эти три константы и список других констант.