Internet технологии | |
(конспект) |
Работа в Internet | Основы HTML | Web-дизайн | Web-мастеринг |
Введение
E-mail
Поиск информации
FTP
|
Введение
Ссылки и иллюстрации
Таблицы и списки
Фреймы и формы
|
Введение DreamWeaver HomeSite
Каскадные таблицы стилей CSS
Photoshop 5.5 для Web-дизайна
AdobeImageReady 2.0
Ulead GifAnimator 2.0
|
JavaScript CGI IIS 4.0 ASP. VBScript >> Работа с БД
Perl
Java
|
Курс: Web-мастеринг |
Работа с БД. Примеры |
.. | ../ | / |
Open Database Connectivity (ODBC).
БД | SQL >> |
ODBC | SQL >> |
Сервер программа с ADO |
Клиент браузер |
Открытая связь с БД.
БД - это определенным образом структурированный набор данных.
ID | name | mess |
На примере чата.
Количество записей в БД в общем случае неограничено. Не существует счетчика этих записей.С БД можно проводить следующие операции:
Порядка 30% использования Internet - это бизнес-приложения, работа с БД.
Для обращения к БД нужно знать:.. | ../ | / |
Создать >> Режим конструктора
Имя таблицы data1
Ключевое поле - уникальный идентификатор записи.
!!! В Access обратиться к таблице можно только, если там есть хоть одна запись.
Связь с внешним миром осуществляется с помощью ODBC.
ODBC - это набор стандартных драйверов для управления.
Когда подключаем БД к ODBC вручную, указываем с каким драйвером работать... | ../ | / |
.. | ../ | / |
Select имя_поля1, имя_поля2 form имя_таблицы where условие имя_поля1 - name имя_поля2 - mess имя_таблицы - data1 where условие - необязательное условие (name=vasja)Если считываем все поля, то поставить *:
Select * form …
Если условие не указано, то будут выбраны все записи, присутствующие в таблице.
Insert into имя_таблицы(имя_поля1,имя_поля2, …) values значение_поля1, значение_поля2, …
Insert into data1(name,mess) values vasja, Hello
Update имя_таблицы set имя_поля1=значение_поля1, имя_поля2=значение_поля2, … where условиеУсловие: id=2
Delete from имя_таблицы where условие
.. | ../ | / |
Связь с БД осуществляется с помощью ADO.
Этот компонент состоит из ряда собственных объектов:
Commond
- выполняет операции над источником данных ODBC (работает по умолчанию, прописывать его в явном виде в программе не обязательно).
Connection
- устанавливает и разрывает связь с БД.
RecordSet
- экземпляр объекта содержит набор записей, полученных от БД в результате выполнения SQL-запроса (массив).
Error
- указывает (содержит) список ошибок, возникших при подключении к БД или выполнении SQL-операторов.
Set a=Server.CreateObject("ADODB.Connection")
Для открытия БД необходимо выполнить метод Open
a.Open "DSN_БД", "логин", "пароль"
Set r=a.Execute(SQL-запрос)
Этот метод выполняет только 3 функции:
a.Close
Set r=Server.CreateObject("ADODB.RecordSet")
r.Open(SQL-запрос)
Для перемещения по записям в объекте RecordSet существует четыре метода:
r.Close
.. | ../ | / |
<HTML> <HEAD> <TITLE>Доска сообщений</TITLE> </HEAD> <FRAMESET ROWS="80%,20%" FRAMEBORDER="NO" BORDER=0> <FRAME SRC="ex3_1.asp#end" NAME="MESSAGES"> <FRAME SRC="ex3_2.asp" NAME="USER"> </FRAMESET> </HTML>
<HTML> <HEAD> <META HTTP-EQUIV="Refresh" Content="60; URL=ex3_1.asp#end"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> </HEAD> <BODY BGCOLOR=silver> <TABLE BORDER=1 ALIGN=center WIDTH=80%> <TH>ID</TH><TH>NAME</TH><TH>MESSAGE</TH> <%Set a=Server.CreateObject("ADODB.Connection") a.Open "webm" sql="select * from data1" set r=a.Execute(sql) do while not r.EOF response.write("<TR><TD>"&r("ID")&"</TD> <TD>"&r("NAME")&"</TD> <TD BGCOLOR=white>"&r("MESS")&"</TD></TR>") r.MoveNext loop r.Close a.Close%> <TR><TD><A NAME="end"></A></TD></TR> </TABLE> </BODY> </HTML>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
CONTENT="no-cache"
- запрет броузеру запоминать страницы в памяти, чтобы не было "кеширования".
Set a=Server.CreateObject("ADODB.Connection")
В переменной a создается экземпляр объекта Connection.
a.Open"webm"
webm - псевдоним БД
С этого момента доступ другим пользователям запрещен.
Формируем SQL-запрос:sql="select * from data1"
В переменной sql создаем текст запроса.
set r=a.Execute(sql)
Создаем экземпляр объекта RecordSet;
выполняем запрос к БД;
результаты этого запроса помещаются в переменную r, эта переменная находится на компьютере сервера, т.е. разнесено сервер-клиент.
Вторая задача - отобразить на HTML-странице.
do while not r.EOF
EOF - это стандартный метод, он указывает на конец файла или на конец записи.
Цикл выполняется, пока не будет достигнута последняя запись в переменной r.
response.write - выводит информацию в браузер клиента (в табличном виде).
r("ID")
r - переменная от поля с именем "ID", здесь обращение к полям таблицы.
r.MoveNext - переходим на следующую запись.
r.Close
a.Close
Закрываем экземпляр объекта, закрываем БД.
NAME="end"
- что бы прокрутка обновлялась.
<HTML> <HEAD> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> </HEAD> <BODY BGCOLOR=silver> <%Dim Hi Hi="Вошел в чат!"%> <CENTER> <FORM METHOD=GET ACTION="ex3_2.asp"> <%If Request.QueryString("user_name")="" Then%> Зарегестрируйтесь <B>name:</B> <INPUT TYPE="text" SIZE="10" NAME="user_name" VALUE=""> <INPUT TYPE="hidden" NAME="user_mess" VALUE="<%=Hi%>"> <%Else%> <B><%=Request.QueryString("user_name")%></B> <INPUT TYPE="hidden" NAME="user_name" VALUE=<%=Request.QueryString("user_name")%>> Ваше сообщение: <INPUT TYPE="text" SIZE="20" NAME="user_mess" VALUE=""> <%End If%> <INPUT TYPE="reset" VALUE="Отмена"> <INPUT TYPE="submit" VALUE="Добавить"> </FORM> <% Sub InsertMessage(the_name, the_mess) Dim a, sql, r If (the_name="" Or the_mess="") Then Exit Sub Else Set a=Server.CreateObject("ADODB.Connection") a.Open "webm" sql="INSERT INTO Data1(name, mess) VALUES ("&CHR(39)&the_name&CHR(39)&", "&CHR(39)&the_mess&CHR(39)&")" set r=a.Execute(sql) a.Close End If End Sub InsertMessage Request.QueryString("user_name"), Request.QueryString("user_mess") %> </CENTER> <%If Request.QueryString("user_mess")="" Then%> <%Else%> <SCRIPT> parent.window.frames['MESSAGES'].location.href="ex3_1.asp#end" </SCRIPT> <%End If%> </BODY> </HTML>
Как добавить новую запись в БД.
Скрытое поле в HTML используют как неявную переменную, чтобы запомнить данные. Т.е. имя запоминается в скрытом поле.
ACTION="ex3_2.asp"
Request.QueryString("user_name")
"user_name"
- имя скрытого поля.<%If …
<%Else%>
."user_name"
заносится в скрытое поле "hidden"
, чтобы запомнить имя пользователя.
Далее передача данных в БД.
<% Sub InsertMessage(the_name, the_mess)
Это подпрограмма, которая имеет два параметра: the_name и the_mess. Она будет добавлять содержимое в БД.
Dim a, sql, r - явное обновление переменных.
Если введены и имя и сообщение, то выполняется блок Else.
Set a=Server.CreateObject("ADODB.Connection")
Создаем экземпляр объекта Connection
a.Open "webm" - открываем БД.
sql="INSERT INTO Data1(name, mess) VALUES ("&CHR(39)&the_name&CHR(39)&", "&CHR(39)&the_mess&CHR(39)&")"Т.е. добавить в БД в поля значения "the_name", "the_mess":
sql="INSERT INTO Data1(name, mess) VALUES ("the_name", "the_mess")"
set r=a.Execute(sql)
Формируем sql-запрос. Добавляется новая запись.
a.Close
- закрываем БД.
<SCRIPT> parent.window.frames['MESSAGES'].location.href="ex3_1.asp#end" </SCRIPT>Это оператор JavaScript.
[ Home ] [ Top ] [ Web-дизайн ] [ Web-мастеринг ] [ Статьи, обзоры ] [ Литература ] [ Ссылки ]
[ Страничка юмора ]
[ Гостевая книга ] [ E-Mail ]