Mit der Entwicklung der Netzwerktechnologie und der Popularität des Internets ist Browser/Server zum Mainstream in der Softwareentwicklung geworden. Bei der Entwicklung eines ERP-Systems hat der Autor das B/S-Softwaremodell übernommen. Die spezifische Architektur ist SQL Server + IIS + IE . Die Webseite verwendet die Active Server Page-Datei. Da das System eine große Menge an Datenoperationen und Abfragen umfasst, führt es zwangsläufig zu einer geringen Effizienz, wenn es ausschließlich in der ASP-Skriptsprache geschrieben ist. Um die Gesamteffizienz und Sicherheit des Systems zu verbessern, verwendet der Autor ASP-Komponenten Ersetzen Sie die ASP-Skriptsprache.
Aufgrund der leistungsstarken Funktionen und der extrem hohen Effizienz von Delphi bei der Entwicklung von Datenbankanwendungssystemen verwendet der Autor am häufigsten Delphi 5.0 zur Entwicklung von ASP-Komponenten (natürlich kann auch Visual Basic oder VC++ zur Entwicklung von ASP-Komponenten verwendet werden). das Internet und InternetExPRess Die beiden Komponentenpanels stellen zahlreiche Komponenten bereit, mit denen Webseiten direkt generiert werden können. Diesen Komponenten fehlt jedoch die gemeinsame Paging-Funktion für die Datenanzeige in Webseiten. Wie wir alle wissen, erstellt ASP ein RecordSet-Objekt, indem es eine ADO-Verbindung zur Datenbank herstellt, und verwendet dann die AbsolutePage des RecordSets für die Seitenpositionierung. In Delphi 5.0 wurde die ADO-Komponente bereitgestellt, um die ADO-Bibliothek von Microsoft zu kapseln verfügt über die Seitenpositionierungsfunktion. Als Nächstes entwickelt der Autor eine allgemeine ASP-Komponente, die Paging-Webseiten Schritt für Schritt anzeigt.
Der erste Schritt: Erstellen Sie eine neue Activex-Bibliothek mit dem Namen PadoPage und anschließend eine neue Active Server-Objektklasse mit dem Namen AdoPage. Das heißt, es wird eine ASP-Komponente mit dem Namen AdoPage erstellt und die Datei heißt Adopage.pas.
Schritt 2: Öffnen Sie die Typbibliothek, erstellen Sie eine neue Methode Get_Page und fügen Sie dann einen Parameter Pconnandsgl zu Get_Page hinzu, um die Datenbankverbindungsanweisung und die SQL-Anweisung zu übergeben. Die Parameterauswahl ist vom Typ BSTR.
Schritt 3: Erstellen Sie ein neues DataModule, fügen Sie die Adoconnection-Komponente und die AdoQuery-Komponente ein und nennen Sie das Datenmodul AdoDataModule. Da die Methode Get_Page in der neu erstellten Komponente Daten von DataModule abrufen muss, müssen Sie AdoDataModule zur Uses-Klausel von Adopage.pas hinzufügen, dann eine Variable fadodm des Datenmoduls deklarieren und die beiden Methoden Initialize und Destroy hinzufügen gleichzeitig, damit Datenmodule in der ASP-Gruppenarbeit generiert werden können. Der spezifische Code von Adopage.pas lautet wie folgt:
Einheit Adopage;
Schnittstelle
verwendet
ComObj, SysUtils, Klassen, ActiveX, AspTlb, Pbasedata_TLB, StdVcl, AdoDataModule;
//AdoDataModule zur USE-Klausel hinzufügen
Typ
T Adopage = class(TASPObject, Ibasedata)
Privat
fadodm:TAdoDataModuleform;
geschützt
Prozedur OnEndPage; Safecall;
procedure OnStartPage(const AScriptingContext: IUnknown);
procedure get_page(const pconnandsql: WideString);
öffentlich
Prozedur initialisieren;überschreiben;
Destruktor zerstören;überschreiben;
Ende;
Durchführung
verwendet ComServ,forms;
Destruktor Tadopage.destroy;
beginnen
geerbt;
fadodm.Destroy;
Ende;
Prozedur Tadopage.initialize;
beginnen
geerbt;
fadodm:=tadodmform.Create(forms.application);
Ende;
Schritt 4: Richten Sie eine allgemeine Paging-Methode zum Anzeigen von Daten ein, get_page. Der spezifische Code lautet wie folgt:
procedure Tadopage.get_page(const pconnandsql: WideString);
var i,j,n:integer;
connstr,sqlstr:widestring;
rs:_recordset;
cur_url:widestring;
page_no:integer;
beginnen
// Nehmen Sie zunächst die Verbindungszeichenfolge und die SQL-Anweisung aus den übergebenen Parametern heraus.
pconnandsql:=uppercase(pconnandsql);
i:=pos('CONNSTR',pcnnandsql);
j:=pos('SQLSTR',pcnnandsql);
wenn i=0 oder j=0 dann
beginnen
Response.write('Datenbankverbindungszeichenfolge oder SQL-Anweisungsfehler!');
abbrechen;
Ende;
für n:=I+8 bis j-1 tun
connstr:=connstr+pcnnandsql[n];
für n:=j+7 bis length(pcnnandsql) do
sqlstr:=sqlstr+pcnnandsql[n];
//Weisen Sie die erhaltene Verbindungszeichenfolge und die SQL-Anweisung ADOconnection bzw. ADOQuery zu
fadodm.adoconnection1.connstring:=connstr;
fadodm.adoquery1.sql.add(sqlstr);
// Im Folgenden wird der Vorgang zum Öffnen der Datenbank und zum Durchführen von Paging beschrieben
versuchen
fadodm.adoquery1.open;
//Öffne die Datenbank
rs:=fadodm.adoquery1.recordset;
//Rufen Sie die URL und die Seitennummer der aktuell geöffneten Seite ab
versuchen
wenn request.servervariable['url'].count>0 dann
cur_url:= request.servervariable.item['url'];
wenn request.querystring['page_no'].count>0 dann
page_no:=request.querystring.item['page_no']
anders
page_no:=1;
außer
Ende;
rs.pagesize:=20;
//20 Zeilen pro Seite festlegen
rs.AbsolutePage:=page_no;
//Seitenpositionierung
Response.write('total'+inttostr(rs.pagecount)+'page& ');
Response.write('th'+inttostr(page_no)+'page& ');
//Für jede Seitenzahl einen Hyperlink erstellen
for i:=1 to rs.pagecount do
Response.write('<a href='+cur_url+'?page_no='+inttostr(i)+'>'
+inttostr(i)+'</a>');
//Datensätze werden in Tabellen angezeigt
Antwort.write('<Tabelle>');
//Den Tabellentitel abrufen
Antwort.write('<tr>');
für I:=0 bis fadodm.adoquery1.fields.count-1 tun
Response.write('<td>'+fadodm.adoquery1.fields[i].fieldname+'</td>');
Antwort.write('</tr>');
j:=1
mit fadodm.adoquery1 tun
while (nicht eof) und j<=rs.pagesize tun
beginnen
Antwort.write('<tr>');
//Tabelleninhalt abrufen
for i:=1 to field.count do
Response.write('<td>'+fields[i].asstring+'</td>');
Antwort.write('</tr>');
nächste;
Ende;
Antwort.write('</table>');
fadodm.adoquery1.close;
außer
Response.write('Datenfehler!');
Ende;
Ende;
Das Obige ist der Prozess zum Abrufen universeller Paging-Daten. Es ist zu beachten, dass einige Funktionen beim Kompilieren Fehler verursachen. Fügen Sie einfach Sysutils, Klassen und ADODB-Einheiten zur USES-Klausel hinzu.
Schritt 5: Kompilieren und registrieren Sie die Adopage-Komponente, die im ASP-Code aufgerufen werden kann. Das Aufrufbeispiel lautet wie folgt:
<%
dim webpageobj
set webpageobj=server.createobject(padopage.adopage)
webpageobj.get_page(conn=provider=SQLOLEDB.1;presist security info=false;
Benutzer-ID=sa;initialer Katalog=Verkaufsdaten;Datenquelle=(lokal),
sqlstr=selectvom Kunden)
%>
Durch die oben genannten Schritte haben wir mit Delphi erfolgreich eine ASP-Komponente mit Paging-Funktion entwickelt.