Bagian pertama dari rangkaian Pengenalan Dasar dan Penguasaan Komponen Asp
Saya selalu ingin menulis beberapa aplikasi komponen. Selama ini, saya akhirnya bisa menulis sesuatu yang saya suka.
Saya harap setelah mempelajari tutorial ini, Anda dapat menulis komponen Anda sendiri sesuka Anda.
Masing-masing artikel mungkin tidak berhubungan, namun hanya menulis tentang beberapa permasalahan yang muncul pada saat penulisan komponen.
Sambut semua orang untuk mengkritik dan memperbaiki
lingkungan: winxp+vb6+sp6+visual interdev6.0
Sebagai artikel pertama, pertama-tama mari kita tulis komponen yang relatif sederhana
yang menjalankan fungsi berikut: memasukkan dua angka dan menjumlahkannya, mengembalikan hasil tambahan
, membuka vb6, dan membuat proyek Activex Dll baru. Ubah nama proyek menjadi fCom dan nama kelas menjadi fC1.
Klik Menu->Alat->Tambahkan Proses.
Kami memasukkan Tambah dalam nama, pilih fungsi sebagai tipe, pilih publik sebagai cakupan, dan kemudian konfirmasi untuk
menghasilkan kode berikut akan terus memperbaikinya.
kode program
Opsi Eksplisit
Tambah Fungsi Publik (ByVal a Selama, ByVal b Selama) Selama
Tambahkan=a+b
Fungsi Akhir
Oke, komponen sederhana telah ditulis. Klik menu->File->Generate fCom.dll file
untuk mengonfirmasi. Akan ada file fCom.dll di direktori.
Uji
buka visual interdev6.0 dan buat file asp menggunakannya? Interdev, karena memiliki fungsi kode prompt, konsisten dengan lingkungan IDE VB, dan nyaman untuk menulis
kode program
<%@ Bahasa=VBScript %>
<HTML>
<KEPALA>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</KEPALA>
<TUBUH>
<%
atur obj=server.CreateObject("fCom.fC1")
'Perhatikan kalimat berikut, karena fungsi memiliki nilai kembalian, Anda tidak dapat menuliskannya dalam metode berikut, jika tidak, kesalahan akan dilaporkan di IE
'obj.Add(3,4)
'Jenis kesalahan:
'Kesalahan kompiler Microsoft VBScript (0x800A0414)
'Anda tidak dapat menggunakan tanda kurung saat memanggil subrutin
'/xml/fc1.asp, baris 9, kolom 12
'obj.Tambahkan(3,4)
'Berikut ini adalah cara menulis yang benar
redup c
c=obj.Tambahkan(3,4)
Respon.Tulis c
%>
</BODI>
</HTML>
Konfigurasikan direktori virtual, jalankan file asp ini di IE, dan dapatkan hasilnya 7.
Artikel pertama selesai.
Komponen Asp Pengenalan dan Penguasaan Dasar Seri 2
Cara Pendaftaran Komponen
1. Jalur absolut komponen regsvr32
adalah sebagai berikut:
kode program
regsvr32 c:testfc1.dll
Karena komponen dapat digunakan asalkan terdaftar, tidak ada hubungannya dengan lokasi komponen tersebut.
2.
Kapan pendaftaran ini diperlukansaat mendaftar di manajer komponen COM+
: Komponen harus didaftarkan sebelum dapat dijalankan secara normal setelah menggunakan layanan COM+. Jika komponen hanya terdaftar di regsvr32 saja, tetap tidak bisa
digunakan
kode program
set obj=server.createobject("Nama proyek. Nama kelas")
Kemudian panggil atribut metodenya.
Cara uninstall komponen
1. Jalur absolut komponen regsvr32
adalah sebagai berikut:
kode program
regsvr32 c:testfc1.dll /u
u parameter komponen anti-registrasi
2. Hapus saja komponen di manajer komponen COM+.
Entri komponen Asp dan seri penguasaan bagian ketiga:
Cara menggunakan properti
untuk membuka vb6 dan membuat proyek Activex Dll baru. Ubah nama proyek menjadi fCom dan nama kelas menjadi fC2.
Klik Menu->Alat->Tambahkan Proses.
Kami memasukkan namasaya dalam nama, pilih atribut sebagai jenisnya, pilih publik sebagai cakupannya, lalu konfirmasikan
pengoperasiannya lagi: masukkan Usia dalam nama, pilih atribut sebagai jenis, Pilih publik dalam cakupan, lalu konfirmasi
dan operasikan lagi: masukkan peopleInfo dalam nama, pilih fungsi sebagai jenis, pilih publik dalam cakupan, lalu konfirmasi
Kode adalah sebagai berikut:
kode program
Opsi Eksplisit
'Variabel lokal yang menyimpan nilai atribut hanya dapat digunakan di kelas
MvarmyName Pribadi Sebagai String
MvarAge Pribadi Sebagai Integer
'Biarkan menulis atribut (Biarkan atribut: Proses ini memberikan nilai pada suatu atribut.)
Properti Publik Biarkan Usia (ByVal vData Sebagai Integer)
mvarUmur = vData
Properti Akhir
'Dapatkan atribut baca (Proses ini mendapatkan nilai atribut.)
Properti Publik Dapatkan Age() Sebagai Integer
Usia = mvarUmur
Properti Akhir
Properti Publik Biarkan myName(ByVal vData As String)
mvarmyName = vData
Properti Akhir
Properti Publik Dapatkan myName() Sebagai String
Namaku = mvarmyName
Properti Akhir
Fungsi Publik peopleInfo() Sebagai String
peopleInfo = "Nama: " & mvarmyName & " Usia: " & mvarAge
Fungsi Akhir
Oke, komponen sederhana telah ditulis. Klik menu->File->Generate fCom.dll file
untuk mengonfirmasi. Akan ada file fCom.dll di direktori.
Uji
buka visual interdev6.0 dan buat file asp menggunakannya? Interdev, karena memiliki fungsi kode prompt, konsisten dengan lingkungan IDE VB, dan nyaman untuk menulis
kode program
<%@ Bahasa=VBScript %>
<HTML>
<TUBUH>
<%
atur obj=server.CreateObject("fCom.fC2")
redup c
'Apa yang disebut di sini adalah properti Let dari komponen tersebut
obj.myName="Tornado"
obj.Umur =20
c=obj.peopleInfo()
Respon.Tulis c
'Apa yang disebut di sini adalah properti Get dari komponen tersebut
Respon.Tulis "<br>"
Respon.Tulis obj.myName
Respon.Tulis "<br>"
Respon.Tulis objek.Usia
%>
</BODI>
</HTML>
Konfigurasikan direktori virtual dan jalankan file asp ini di IE. Hasilnya adalah sebagai berikut:
Nama: Tornado Usia: 20
angin topan
20
Untuk melanjutkan
seri pengenalan dan penguasaan komponen Asp 4
Masalah array Array
banyak digunakan dalam program, dan mereka lebih cenderung menyebabkan masalah.
Mari kita lihat melalui contoh kecil
Buka vb6 dan buat yang baru Proyek Activex Dll. Ubah nama proyek menjadi fCom dan nama kelas menjadi fC4.
Klik Menu->Alat->Tambahkan Proses.
Kami memasukkan AcceptArray1 pada namanya, pilih subrutin sebagai jenisnya, pilih publik sebagai rentangnya, lalu konfirmasikan
operasinya lagi: enter AcceptArray2 pada namanya, dan pilih fungsi sebagai tipenya, pilih publik sebagai cakupannya, lalu konfirmasi
kode program
'Fungsi: Berikan alamat array ke komponen, gunakan kata kunci ByRef, lalu tetapkan dan kembalikan
Sub Publik AcceptArray1(ByRef varray Sebagai Varian) Sebagai Varian
varray(0) = "Tornado"
varray(1) = "20"
Sub Akhir
: Mengembalikan array string
Fungsi Publik AcceptArray2() Sebagai Varian
Redupkan a(2) sebagai Varian
a(0) = "Tornado"
a(1) = "20"
TerimaArray2=a
Fungsi Selesai
Oke, komponen telah ditulis. Klik menu->File->Generate fCom.dll file
untuk mengonfirmasi. Akan ada file fCom.dll di direktori.
Uji
buka visual interdev6.0 dan buat kode program file asp
.
<%@ Bahasa=VBScript %>
<HTML>
<TUBUH>
<%
objek redup
setel objek = server.createobject("fCom.fC4")
redupkan a(2)
'Uji metode komponen pertama
obj.TerimaArray1(a)
respon.tulis a(0)
respon.tulis "<br>"
respon.tulis a(1)
respon.tulis "<br>"
'Uji metode komponen kedua
redup b
b=obj.TerimaArray2()
untuk i=0 hingga ubound(b)
Respon.Tulis b(i)
respon.tulis "<br>"
Berikutnya
%>
</BODI>
</HTML>
Konfigurasikan direktori virtual dan jalankan file asp ini di IE. Hasilnya adalah sebagai berikut:
Tornado
20
angin topan
20
Ringkasnya:
string dan angka diteruskan berdasarkan nilai atau dikembalikan sebagai nilai kembalian.
Jika melewati referensi, atur jenis parameter ke Varian. Melakukan hal ini dapat menghindari beberapa kesalahan. Namun, cobalah untuk mengurangi parameter yang diteruskan dengan referensi sebanyak mungkin.
Untuk melanjutkan.
Pengenalan dan penguasaan komponen Asp seri 5.
Seringkali kita dapat melihat bahwa ketika menghubungkan ke database dan membuka kumpulan catatan, sebagai berikut:
kode program
rs.Buka strsql, samb,adOpenDynamic,adLockPessimistic
Saat mengetik ",", daftar jenis kursor atau jenis kunci akan muncul untuk dipilih.
Terkadang untuk mempermudah, kita langsung rs.open strsql,conn,1,3.
Apakah cara pertama lebih profesional? Mari kita lihat cara
membuka vb6 di asp dan membuat proyek Activex Dll baru. Nama proyek diubah menjadi fCom dan nama kelas diubah menjadi fC5
kode program
Opsi Eksplisit
'Tentukan jenis enumerasi
Penggalian Antarmuka Enum Publik
icpertama = 1
icdetik = 2
ictiga = 3
icempat = 4
iclima=5
icenam=6
server=7
tinggi es = 8
Akhiri Enum
'Tentukan fungsi
CallDat Fungsi Publik (ByVal idig Sebagai Integer, ByVal ics Sebagai Interfacedig) Sebagai Varian
CallDat = idig * ics
Fungsi Selesai
Oke, komponen telah ditulis. Klik menu->File->Generate fCom.dll file
untuk mengonfirmasi. Akan ada file fCom.dll di direktori.
Uji
buka visual interdev6.0 dan buat kode program file asp
.
<%@ Bahasa=VBScript %>
<HTML>
<TUBUH>
<%
'Definisinya, Anda juga dapat memasukkan bagian ini ke dalam file, seperti kumpulan rekaman ado <!--#include file="adovbs.inc"-->
const icpertama = 1
const icdetik = 2
const ictiga = 3
const icempat = 4
konstanta icfive = 5
konstanta icsix = 6
const server = 7
const esight = 8
atur obj=server.CreateObject("fCom.fc5")
'iceight atau 8 dapat digunakan di sini, tetapi yang pertama membuat kode lebih mudah dibaca
a= obj.CallDat(4,iceight)
Tanggapan. Tulis a
Respon.Tulis "<br>"
a= obj.PanggilDat(4,8)
Tanggapan. Tulis a
%>
<P> </P>
</BODI>
</HTML>
Konfigurasikan direktori virtual dan jalankan file asp ini di IE. Hasilnya adalah sebagai berikut:
32
32
Pengenalan Dasar dan Penguasaan Komponen Asp Seri 6
Penanganan Error
Jika pada halaman terdapat error dan tidak ada penanganan error, maka pada halaman tersebut akan menampilkan error yang mungkin tidak dipahami oleh pengguna.
Dapat digunakan dalam skrip asp
kode program
Pada Kesalahan Lanjutkan Berikutnya
…
jika Err.Number<>0 maka
Respon.Tulis Err.Deskripsi
Berakhir jika
Namun bagaimana jika terjadi kesalahan pada komponen tersebut? Metode ini dapat menangkap kesalahan, tetapi bagaimana cara mengetahui kesalahan spesifiknya?
Kita dapat menambahkan penanganan kesalahan pada komponen untuk mengembalikan kesalahan, sehingga kita dapat dengan mudah melihat informasi kesalahan lebih detail dan membantu kita memecahkan masalah kesalahan.
Gunakan Err.Raise, Raise digunakan untuk menghasilkan kesalahan runtime.
Buka vb6 dan buat proyek Activex Dll baru. Nama proyek diubah menjadi fCom dan nama kelas diubah menjadi fC6
kode program
Opsi Eksplisit
Sub Publik showerror1()
Jika terjadi kesalahan, buka ErrorHandle
Redupkan saya Sebagai Ganda
saya=1/0
Penanganan Kesalahan:
Err.Naikkan Err.Nomor, Err.Sumber, Err.Deskripsi
Akhiri Sub
'Hasilkan kesalahan khusus
Sub Publik showerror2()
Err.Raise 600, "Kesalahan yang ditentukan sendiri 600", "Ini adalah kesalahan yang menjelaskan program Anda sendiri"
End Sub
Ok, komponen sudah ditulis. Klik menu->File->Generate fCom.dll file
untuk konfirmasi. Akan ada file fCom.dll di direktori.
Uji
buka visual interdev6.0 dan buat kode program file asp
.
<%@ Bahasa=VBScript %>
<HTML>
<TUBUH>
<%
'Kalimat berikut ini sangat penting
pada kesalahan lanjutkan berikutnya
atur obj=server.CreateObject("fCom.fc6")
obj.showerror1()
'Jika tidak ada penanganan error maka akan dihasilkan antarmuka error yang sangat tidak profesional.
'Rentang dari 0–512 dicadangkan untuk kesalahan sistem; rentang dari 513–65535 dapat digunakan untuk kesalahan yang ditentukan pengguna.
'Jika ini adalah kesalahan yang dipertahankan, maka nomor kesalahan dalam komponen konsisten dengan nomor kesalahan pemrosesan halaman
jika err.number <>0 maka
Response.Tulis "Pesan kesalahan" & err.number & err.Deskripsi
berakhir jika
Respon.Tulis "<br>"
'Jika ini adalah kesalahan yang ditentukan pengguna, itu dapat diproses secara terpisah di halaman
obj.showerror2()
jika err.number<>0 maka
jika err.number =600 maka
Respon.Tulis err.number & err.Sumber & err.Deskripsi
berakhir jika
berakhir jika
%>
</BODI>
</HTML>
Konfigurasikan direktori virtual dan jalankan file asp ini di IE. Hasilnya adalah sebagai berikut:
Pesan kesalahan 11 dibagi nol.
600 Kesalahan yang ditentukan sendiri 600 Ini adalah kesalahan yang menjelaskan program Anda sendiri.
Seri Pengenalan dan Penguasaan Komponen Asp Bagian 7.
Saat menjalankan contoh di bab sebelumnya, Anda mungkin mengalami beberapa masalah kurang lebih
, seperti: setelah komponen tersebut selesai. dikompilasi, perlu dimodifikasi, kesalahan seperti "Izin ditolak, 'f:csdnfcom.dll'" dll.
Saat menelusuri halaman asp, buka task manager dan Anda akan melihat proses dllhost.exe dengan nama pengguna IWAM_YANG. IWAM_YANG akan bervariasi tergantung pada nama komputer.
Anda dapat menggunakan metode berikut untuk menyelesaikan
1. Mulai ulang iis.
Temukan Alat Manajemen->Layanan Informasi Internet->klik kanan komputer lokal di pohon tingkat kedua di sebelah kiri di panel kontrol->semua tugas->mulai ulang IIS.
Saat ini Anda dapat melihat bahwa proses dllhost.exe telah ditutup
2. Kerugian dari metode di atas adalah semua situs web saat ini ditutup hingga dimulai ulang.
Apakah ada solusi untuk satu situs web atau direktori virtual? Temukan
Alat Administratif -> Layanan Informasi Internet -> Temukan direktori virtual tempat komponen Anda berjalan di Panel Kontrol. ->Klik kanan Properti->Di direktori virtual pertama->Perlindungan Aplikasi->Klik Uninstall.
Saat ini Anda dapat melihat bahwa proses dllhost.exe telah ditutup
3. Jika dirasa merepotkan, langsung saja akhiri prosesnya di Windows Task Manager
4. Cara terakhir
adalah mencari alat manajemen di panel kontrol -> Layanan Komponen -> klik Komputer, Komputer Saya, Proses yang Berjalan -> Aplikasi Kumpulan Di Luar Proses IIS (2860) -> klik kanan untuk menutupnya
saat ini Anda dapat melihat bahwa proses dllhost.exe telah ditutup.