Dengan perkembangan teknologi jaringan dan popularitas Internet, Browser/Server telah menjadi arus utama dalam pengembangan perangkat lunak. Saat mengembangkan sistem ERP, penulis mengadopsi model perangkat lunak B/S. Arsitektur spesifiknya adalah SQL Server + IIS + IE .Halaman web menggunakan file Halaman Server Aktif. Karena sistem melibatkan sejumlah besar operasi data dan kueri, jika ditulis murni dalam bahasa skrip asp, hal ini pasti akan menyebabkan efisiensi yang rendah. Untuk meningkatkan efisiensi dan keamanan sistem secara keseluruhan, penulis menggunakan komponen ASP untuk ganti bahasa skrip ASP.
Karena fungsi Delphi yang kuat dan efisiensi yang sangat tinggi dalam mengembangkan sistem aplikasi database, penulis paling sering menggunakan Delphi 5.0 untuk mengembangkan komponen ASP (tentu saja, Visual Basic atau VC++ juga dapat digunakan untuk mengembangkan komponen ASP itu sendiri yang banyak digunakan). Internet dan InternetExPRess Kedua panel komponen menyediakan banyak komponen yang dapat langsung menghasilkan halaman Web, tetapi komponen ini tidak memiliki fungsi halaman umum untuk menampilkan data di halaman web. Seperti kita ketahui bersama, ASP membuat objek RecordSet dengan membuat koneksi ADO ke database, dan kemudian menggunakan AbsolutePage dari RecordSet untuk penentuan posisi halaman. Di Delphi 5.0, komponen ADO telah disediakan untuk merangkum perpustakaan ADO Microsoft, demikian juga. memiliki fungsi pemosisian halaman. Selanjutnya, penulis akan mengembangkan komponen ASP umum yang menampilkan paging halaman Web langkah demi langkah.
Langkah pertama: Buat Perpustakaan Activex baru, bernama PadoPage, dan kemudian buat Kelas Objek Server Aktif baru, bernama AdoPage, yaitu, komponen ASP bernama AdoPage dibuat, dan file tersebut diberi nama Adopage.pas.
Langkah 2: Buka Perpustakaan Tipe, buat metode baru Get_Page, lalu tambahkan parameter Pconnandsgl ke Get_Page untuk meneruskan pernyataan koneksi database dan pernyataan SQL.
Langkah 3: Buat DataModule baru, masukkan komponen Adoconnection dan komponen AdoQuery, dan beri nama Modul Data AdoDataModule. Karena metode Get_Page di komponen yang baru dibuat perlu mendapatkan data dari DataModule, Anda perlu menambahkan AdoDataModule ke klausa Uses dari Adopage.pas, lalu mendeklarasikan variabel fadodm dari modul data, dan menambahkan dua metode Inisialisasi dan Hancurkan di pada saat yang sama, sehingga Menghasilkan modul data dalam kerja kelompok ASP. Kode spesifik Adopage.pas adalah sebagai berikut:
satuan Halaman Adopsi;
antarmuka
kegunaan
ComObj, SysUtils, Kelas, ActiveX, AspTlb, Pbasedata_TLB, StdVcl, AdoDataModule;
//Tambahkan AdoDataModule ke klausa USE
jenis
T Adopage = kelas(TASPObject, Ibasedata)
pribadi
fadodm:TAdoDataModuleform;
terlindung
prosedur OnEndPage;
prosedur OnStartPage(const AScriptingContext: IUnknown);
prosedur get_page(const pconnandsql: WideString);
publik
prosedur inisialisasi;timpa;
destruktor menghancurkan; menimpa;
akhir;
pelaksanaan
menggunakan ComServ, formulir;
destruktor Tadopage.destroy;
mulai
diwariskan;
fadodm.Hancurkan;
akhir;
prosedur Tadopage.inisialisasi;
mulai
diwariskan;
fadodm:=tadodmform.Create(forms.application);
akhir;
Langkah 4: Tetapkan metode paging umum untuk menampilkan data, get_page. Kode spesifiknya adalah sebagai berikut:
prosedur Tadopage.get_page(const pconnandsql: WideString);
var i,j,n: bilangan bulat;
connstr,sqlstr:string lebar;
rs:_kumpulan rekaman;
cur_url:string lebar;
halaman_no:integer;
mulai
//Pertama, keluarkan string koneksi dan pernyataan SQL dari parameter yang diteruskan.
pconnandsql:=huruf besar(pconnandsql);
i:=pos('CONNSTR',pcnnandsql);
j:=pos('SQLSTR',pcnnandsql);
jika i=0 atau j=0 maka
mulai
respon.write('String koneksi database atau kesalahan pernyataan SQL!');
menggugurkan;
akhir;
untuk n:=I+8 sampai j-1 lakukan
koneksi:=konstr+pcnnandsql[n];
untuk n:=j+7 hingga panjang(pcnnandsql) lakukan
sqlstr:=sqlstr+pcnnandsql[n];
// Tetapkan string koneksi dan pernyataan SQL yang diperoleh masing-masing ke ADOconnection dan ADOQuery
fadodm.adoconnection1.connstring:=connstr;
fadodm.adoquery1.sql.add(sqlstr);
//Berikut ini proses pembukaan database dan melakukan paging
mencoba
fadodm.adoquery1.open;
//Buka databasenya
rs:=fadodm.adoquery1.recordset;
//Dapatkan URL dan nomor halaman dari halaman yang sedang dibuka
mencoba
jika request.servervariable['url'].count>0 maka
cur_url:= permintaan.servervariable.item['url'];
jika request.querystring['page_no'].count>0 maka
page_no:=permintaan.querystring.item['page_no']
kalau tidak
halaman_no:=1;
kecuali
akhir;
rs.ukuran halaman:=20;
//Tetapkan 20 baris per halaman
rs.AbsolutePage:=halaman_tidak;
//Pemosisian halaman
respon.write('total'+inttostr(rs.pagecount)+'halaman& ');
respon.write('th'+inttostr(halaman_tidak)+'halaman& ');
//Buat hyperlink untuk setiap nomor halaman
untuk i:=1 hingga rs.pagecount lakukan
respon.write('<a href='+cur_url+'?page_no='+inttostr(i)+'>'
+inttostr(i)+'</a>');
//Catatan data ditampilkan dalam tabel
respon.tulis('<tabel>');
//Dapatkan judul tabel
respon.tulis('<tr>');
untuk I:=0 hingga fadodm.adoquery1.fields.count-1 lakukan
respon.write('<td>'+fadodm.adoquery1.fields[i].fieldname+'</td>');
respon.tulis('</tr>');
j:=1
dengan fadodm.adoquery1 lakukan
while (bukan eof) dan j<=rs.pagesize bisa
mulai
respon.tulis('<tr>');
//Dapatkan konten tabel
untuk i:=1 hingga field.count lakukan
respon.write('<td>'+bidang[i].asstring+'</td>');
respon.tulis('</tr>');
Berikutnya;
akhir;
respon.tulis('</tabel>');
fadodm.adoquery1.close;
kecuali
respon.write('Kesalahan data!');
akhir;
akhir;
Di atas adalah proses mendapatkan data paging universal. Perlu dicatat bahwa beberapa fungsi akan menyebabkan kesalahan selama kompilasi. Cukup tambahkan sysutils, kelas, dan unit adodb ke klausa USES.
Langkah 5: Kompilasi dan daftarkan komponen adopage, yang dapat dipanggil dalam kode ASP. Contoh pemanggilannya adalah sebagai berikut:
<%
meredupkan objek halaman web
setel halaman webobj=server.buat objek(padopage.adopage)
webpageobj.get_page(conn=provider=SQLLEDB.1;presist info keamanan=false;
id pengguna=sa;katalog awal=data_penjualan;sumber data=(lokal),
sqlstr=pilihdari pelanggan)
%>
Melalui langkah-langkah di atas, kita telah berhasil mengembangkan komponen ASP dengan fungsi paging menggunakan Delphi.