DSN или ConnectionString?
DSN (Data Source Name) в переводе с английского означает «имя источника данных». Оно предназначено для простейшего подключения к базе данных, то есть, если вы создали DSN, то вам не нужно указывать в коде все параметры подключения к базе данных (имя базы данных, режим подключения и др.) — они указываются при создании DSN. Пример использования:
ObjConn.ConnectionString=“DSN=name_of_data_source”
Далее подключение можно использовать как в предыдущем примере.
DSN создается так:
• Откройте «Пуск > Настройка > Панель управления > ODBC32…» (на разных компьютерах раздел ODBC называется по-разному — главное, чтобы в названии фигурировала надпись ODBC).
• Выберите вкладку System DSN.
• Выберите нужный драйвер (мы будем использовать Microsoft Access).
• Нажмите Finish.
• Выберите имя источника данных, которое вы будете использовать в сценарии.
• Нажмите кнопку Select, выделите нужную базу данных и кликните OK.
• Щелкните OK. Новый DSN появится в списке.
Все! На этом процесс создания источника данных заканчивается — продукт готов к употреблению :-).
Примечание: вообще-то я бы рекомендовал использовать ConnectionString вместо DSN — в этом случае вы получаете полный контроль за ситуацией.
Теперь давайте рассмотрим, как добавляются записи в базу данных. Если вы знакомы с SQL, то должны знать, что для этого используется оператор UPDATE. Применим этот оператор к нашей базе данных. В предыдущем примере поменяйте строку
strSql = "SELECT Orders.First_Name,Orders.Last_Name," _ & "Products.Name_Of_Product" _ & "FROM Products INNER JOIN Orders ON Products.Product_ID = " _ & "Orders.Product_ID" _ & "WHERE Orders.Product_ID=8"
на
strSql = "UPDATE Orders SET [E-mail] = 'kamnoedov@nii.ru' WHERE Orders.First_Name='" & _ "Modest AND Orders.Last_Name='Kamnoedov'"
Также удалите текст сценария со строки
Response.Wite ""
до строки
Response.Write "<table border="1" align="center"></table>"
включительно.
После этого выполните наш сценарий. Когда вы откроете базу данных, вы увидите, что e-mail у Модеста Матвеевича Камноедова поменялся с kamn@nii.ru на kamnoedov@nii.ru.
Итак, изменять записи мы научились. Теперь давайте добавим в базу данных еще одного покупателя. Измените строку присвоения переменной strSql SQL-запроса таким образом:
INSERT INTO Orders ([First_Name], [Last_Name], [Organization], [Telephone], [E-mail], [Product_ID])" & _ "VALUES ('Aleksandr', 'Privalov', 'NII CHAVO', '100111', 'prival@nii.ru', '8' )"
Когда вы выполните данный сценарий, в базу данных добавится строка с данными главного персонажа упомянутой повести — Александра Привалова.
Чтобы удалить запись из базы данных, нужно поменять SQL-запрос следующим образом:
DELETE FROM Orders WHERE Orders.First_Name='Modest' AND Orders.Last_Name='Kamnoedov'
После исполнения этого запроса запись о Модесте Матвеевиче Камноедове удалится.
В принципе, я показал вам основные, часто используемые конструкции. Если же вам понадобятся какие-то экзотические операторы, то милости прошу в справку по Microsoft Access. Там вы найдете полный справочник по SQL с примерами.
Сегодня мы начнем строить гостевую книгу собственного формата. Создайте базу данных guestbook.mdb, а в ней таблицу Data со следующими параметрами (см. табл.).
После этого создайте файл addguest.asp и добавьте в него следующий код:
<%@ language=VBScript %> <% Option Explicit %> <% Dim objConn Dim objRecordset Dim objField Dim strSql Dim strConn Dim strFirstName Dim strLastName Dim strHomeSite Dim strEmail Dim strMessage Dim mypath Dim mypath2 Dim strDBName1 Dim strDBName if Request.Form("txtFirstName")<>"" And Request.Form("txtLastName")<>"" And Request.Form("txtEmail")<>"" And Request.Form("txtMessage")<>"" then strFirstName = Request.Form("txtFirstName") strLastName = Request.Form("txtLastName") strHomeSite = Request.Form("txtHomeSite") strEmail = Request.Form("txtEmail") strMessage = Request.Form("txtMessage") myPath=Request.ServerVariables("PATH_TRANSLATED") MyPath2=InstrRev(myPath,"\") strDBName1=left(MyPath,MyPath2) strDBName=strDBName1 & "\" strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & strDBName & "guestbook.mdb" set objConn = Server.CreateObject("ADODB.Connection") set objRecordset = Server.CreateObject("ADODB.Recordset") objConn.Mode = adModeReadWrite objConn.ConnectionString = strConn objConn.Open strSql = "INSERT INTO Data ([First_Name], [Last_Name], [E-mail], [HomeSite], [Message]) VALUES " & _ "('" & strFirstName & "', '" & strLastName & "', '" & strEmail & "', '" & strHomeSite & "', '" & strMessage & "')" set objRecordset = objConn.Execute(strSql) objConn.Close set objRecordset = Nothing set objConn = Nothing Response.Redirect "view.asp" Else Response.Write "Fields must not be empty!<br><br>" Response.Write "<a href="guestbook.htm">Go back</a>" End If %>
Очевидно, что необходимо также создать каталог includes и скопировать в него файл adovbs.inc, о котором я говорил раньше.
Посмотрим, как работает приведенный выше сценарий. Сначала устанавливается язык сценария и опция обязательного объявления переменных. Затем подключается файл adovbs.inc, в котором определены все константы для доступа к базам данных посредством технологии ADO. Потом происходит объявление используемых переменных. После этого проверяется, заполнены ли все обязательные поля, и если да, то информация добавляется в нашу базу данных с помощью SQL-конструкции INSERT INTO, закрываются и уничтожаются объекты objConn и objRecordset, после чего методом Redirect объекта Response браузеру дается команда перейти на страничку view.asp, о которой речь пойдет дальше. Если же хотя бы одно обязательное поле не заполнено, то пользователю выдается сообщение об ошибке.
На сегодня это все. В следующий раз мы напишем сценарий view.asp, который, собственно, и будет просматривать гостевую книгу.
(Продолжение следует)

