Основна задача на този пример е да се покаже, как може да се изпълни SQL заявка в ASP (Active Server Page) страница и да се върне резултат в HTML таблица. Това изисква използването на ADO(ActiveX Data Objects) за установяване на връзка с източник на данни (Connection Data Source) и манипулирането им (Recordset).
Усвояването на тази технология предполага известни познания по ASP, SQL, ODBC, обектно-ориентирано програмиране и бази данни (MS Access 2000).
Източник на данни
За целите на примера се изпозва готова база данни (dbstud.mdb), реализирана на MS Access 2000, съдържаща една таблица (Екран 1) с данни за студенти и техните оценки (Students).
Достъп до базата данни се осъществява посредством ODBC. За целта трябва да бъде конфигуриран драйвер за достъп до данните на база данни на MS Access 2000 и да се укаже месторазположението й на диска. От Start/Settings/Control Panel се избира ODBC Data Sources за установяване на параметрите за настройка. В секцията System DSN се добавя Microsoft Acces Driver и след избор на бутон Finish се появвява Екран 2. Тук се задава името на източника на данните и месторазположението на базата данни върху диска.
Инсталираният драйвер се появява в списъка на System DSN. Избор на бутон OK завършва процедурата.
От Екран 2 е видно, че източника на данни (Data Source Name) е с име dbstud, а базата данни dbstud.mdb се намира на f:\temp\example\. Приключване на тази процедура става след избор на бутон OK. Така се изпълнява задължителната предварителна настройка на достъпа до БД.
Изграждането на ASP страница с възможност за достъп до информацията на тази БД преминава през няколко етапа.
Свързване към източника на данни
Свързването към източника на данни става с помощта на обект за връзка
(Connection
object). За създаването на този обект се използва CreateObject
метод на Server обекта.
| <% Set cnDB = Server.CreateObject("ADODB.Connection")
%>
<% cnDB.Open "dbstud" %> |
Свързването на обекта за връзка (cnDB) с източника на данни (dbstud) става чрез метод Open.
Изпълнение на SQL заявка
Използването на SQL оператори в ASP страница се подчинява
на синтаксиса на ASP. Оператора се присвоява на променлива strQuery,
която се използва като параметър при изпълнение на зявката от типа SELECT.
Полученият резултат от изпълнението на метода Execute е обект от
типа Recordset и съдържа върнатите данни.
| <%
strQuery = "SELECT * FROM Students ORDER BY Name" Set rInfo = cnDB.Execute(strQuery) %> |
Възможно е използването на заявки от типа UPDATE, INSERT или DELETE. Тяхното изпълнение се извършва непосредствено чрез Execute метода.
Извличане на информация
При изпълнение на заявка от типа SELECT се получава еднопосочен
резултат от тип обект Recordset. Извличане на данните се извършва
в циклична структура (Do While) при гранично условие край на файл
(Eof).
| <%
Do While Not rInfo.EOF табулиращи инструкции Response.Write(rInfo("<елемент на структура>")) rInfo.MoveNext Loop %> |
Първоначално Recordset обекта сочи първия ред данни, върнати
след изпълнение на SQL заявка. Методът MoveNext служи за
преминаване на следващ ред. След преминаване зад последния ред се включва
условието Eof, с което цикълът се прекратява.
Табулиране на резултата
Резултатите се представят в HTML таблица, с форматиране на заглавед
ред и следващите редове със съдържанието на резултата от заявката.
| <TABLE>
<TR> <TH>Фак. No</TH><TH>Име</TH><TH>Предмет</TH><TH>Оценка</TH> </TR> <% Do While Not rInfo.EOF %> <TR> <TD><% =rsInfo("FacNo") %></TD> <TD><% =rsInfo("Name") %></TD> <TD><% =rsInfo("Subject") %></TD> <TD><% =rsInfo("Score") %></TD> </TR> <% rInfo.MoveNext Loop %> </TABLE> |
Сред HTML елементите, задаващи параметрите на таблица, се вмъкват
ASP инструкции, с което се получава желаното табулиране на данните.
Затваряне на връзката
Финалната операция след изпълнение на заявката и получаване на резултатите
е освобождаване и затваряне на всички използвани обекти.
| <%
rInfo.Close Set rInfo = Nothing cnDB.Close Set cnDB = Nothing %> |
Подготовката на едно самостоятелно изпълнение на този пример изисква инсталиран Уеб сървър IIS4 или PWS. Създаване на база данни dbstud.mdb на MS Access 2000, конфигуриране на ODBC. Необходимият за изпълнението ASP файл (dbstud.asp) може да се създаде с текстов редактор (Notepad) и да се запише в зоната на сървъра, например в директория c:\inetpub\srcipts. Директорията трябва да бъде с разрешени права за "execute" и "scripts".
Резултатът от успешно изпълнение на Уеб приложение за връзка с база данни е показан на Екран 3.
Примерът може да бъде проигран дистанционно след избор на посочената
връзка тук.
Съдържанието на използвания ASP файл може да се види тук.