С развитием сетевых технологий и популярностью Интернета браузер/сервер стал основным направлением разработки программного обеспечения. При разработке ERP-системы автор использовал модель программного обеспечения B/S: SQL Server + IIS + IE. На веб-странице используется файл страницы активного сервера. Поскольку система включает в себя большое количество операций с данными и запросов, если она написана исключительно на языке сценариев asp, это неизбежно приведет к низкой эффективности. Чтобы повысить общую эффективность и безопасность системы, автор использует компоненты ASP. заменить язык сценариев ASP.
Благодаря мощным функциям Delphi и чрезвычайно высокой эффективности разработки прикладных систем баз данных автор чаще всего использует Delphi 5.0 для разработки компонентов ASP (конечно, для разработки компонентов ASP также можно использовать Visual Basic или VC++). Интернет и InternetExPRess Две панели компонентов содержат множество компонентов, которые могут напрямую создавать веб-страницы, но у этих компонентов нет общей функции разбиения на страницы для отображения данных на веб-страницах. Как мы все знаем, ASP создает объект RecordSet, устанавливая соединение ADO с базой данных, а затем использует AbsolutePage RecordSet для позиционирования страницы. В Delphi 5.0 компонент ADO был предоставлен для инкапсуляции библиотеки ADO Microsoft, поэтому он также используется. имеет функцию позиционирования страницы. Далее автор разработает общий компонент ASP, который шаг за шагом отображает страничные веб-страницы.
Первый шаг: создайте новую библиотеку Activex с именем PadoPage, а затем создайте новый класс объектов Active Server с именем AdoPage, то есть создается компонент ASP с именем AdoPage и файл с именем Adopage.pas.
Шаг 2. Откройте библиотеку типов, создайте новый метод Get_Page, а затем добавьте параметр Pconnandsgl в Get_Page, чтобы передать оператор подключения к базе данных и оператор SQL. Выбор параметра имеет тип BSTR.
Шаг 3. Создайте новый DataModule, добавьте компонент Adoconnection и компонент AdoQuery и назовите модуль данных AdoDataModule. Поскольку метод Get_Page во вновь созданном компоненте должен получать данные из DataModule, вам необходимо добавить AdoDataModule в предложение Uses файла Adopage.pas, затем объявить переменную fadodm модуля данных и добавить два метода Initialize и Destroy в в то же время, чтобы модули «Создать данные» в группе ASP работали. Конкретный код Adopage.pas выглядит следующим образом:
блок Адопаж;
интерфейс
использует
ComObj, SysUtils, Классы, ActiveX, AspTlb, Pbasedata_TLB, StdVcl, AdoDataModule;
//Добавляем AdoDataModule в предложение USE
тип
T Adopage = класс (TASPObject, Ibasedata)
частный
fadodm:TAdoDataModuleform;
защищенный
процедура OnEndPage;
процедура OnStartPage (const AScriptingContext: IUnknown);
процедура get_page (const pconnandsql: WideString);
общественный
процедура инициализировать;переопределить;
деструктор уничтожить;переопределить;
конец;
выполнение
использует ComServ, формы;
деструктор Tadopage.destroy;
начинать
унаследованный;
fadodm.Уничтожить;
конец;
процедура Tadopage.initialize;
начинать
унаследованный;
fadodm:=tadodmform.Create(forms.application);
конец;
Шаг 4. Установите общий метод подкачки для отображения данных get_page. Конкретный код выглядит следующим образом:
процедура Tadopage.get_page(const pconnandsql: WideString);
вар я, j, n: целое число;
connstr,sqlstr:широкая строка;
rs:_recordset;
cur_url: широкая строка;
номер_страницы: целое число;
начинать
//Сначала извлекаем строку подключения и оператор SQL из переданных параметров.
pconnandsql: = верхний регистр (pconnandsql);
я:=pos('CONNSTR',pcnnandsql);
j:=pos('SQLSTR',pcnnandsql);
если я=0 или j=0, то
начинать
response.write('Ошибка строки подключения к базе данных или оператора SQL!');
прерывание;
конец;
для n:=I+8 до j-1 сделать
connstr:=connstr+pcnnandsql[n];
для n:=j+7 для длины (pcnnandsql) сделайте
sqlstr:=sqlstr+pcnnandsql[n];
//Назначаем полученную строку подключения и оператор SQL ADOconnection и ADOQuery соответственно
fadodm.adoconnection1.connstring:=connstr;
fadodm.adoquery1.sql.add(sqlstr);
//Далее описан процесс открытия базы данных и выполнения подкачки страниц.
пытаться
fadodm.adoquery1.open;
//Открываем базу данных
rs:=fadodm.adoquery1.recordset;
//Получаем URL и номер открытой в данный момент страницы
пытаться
если request.servervariable['url'].count>0, то
cur_url:= request.servervariable.item['url'];
если request.querystring['page_no'].count>0, то
page_no:=request.querystring.item['page_no']
еще
номер_страницы:=1;
кроме
конец;
rs.pagesize:=20;
//Установим 20 строк на страницу
rs.AbsolutePage:=page_no;
//Позиционирование страницы
response.write('total'+inttostr(rs.pagecount)+'page& ');
response.write('th'+inttostr(page_no)+'page& ');
//Создаем гиперссылку для каждого номера страницы
для i:=1 до rs.pagecount сделать
response.write('<a href='+cur_url+'?page_no='+inttostr(i)+'>'
+inttostr(i)+'</a>');
//Записи данных отображаются в таблицах
response.write('<таблица>');
//Получаем заголовок таблицы
response.write('<tr>');
для I:=0 для fadodm.adoquery1.fields.count-1 сделать
response.write('<td>'+fadodm.adoquery1.fields[i].fieldname+'</td>');
ответ.запись('</tr>');
j:=1
с fadodm.adoquery1 сделать
while (не eof) и j<=rs.pagesize делают
начинать
response.write('<tr>');
//Получаем содержимое таблицы
для i:=1 для полей.count сделать
response.write('<td>'+fields[i].asstring+'</td>');
ответ.запись('</tr>');
следующий;
конец;
response.write('</table>');
фадодм.адокери1.закрыть;
кроме
response.write('Ошибка данных!');
конец;
конец;
Выше описан процесс получения универсальных данных подкачки. Следует отметить, что некоторые функции будут вызывать ошибки во время компиляции. Просто добавьте sysutils, классы и модули adodb в раздел USES.
Шаг 5. Скомпилируйте и зарегистрируйте компонент adopage, который можно вызывать в коде ASP. Пример вызова следующий:
<%
тусклый веб-страницеobj
set webpageobj=server.createobject(padopage.adopage)
webpageobj.get_page(conn=provider=SQLOLEDB.1;presist Security info=false;
идентификатор пользователя=sa;начальный каталог=sale_data;источник данных=(локальный),
sqlstr=выбратьот клиента)
%>
Благодаря описанным выше шагам мы успешно разработали компонент ASP с функцией подкачки с использованием Delphi.