Fungsi program memiliki kerangka umum. Bahkan, Anda dapat menambahkan sendiri beberapa fungsi, seperti koneksi database awal. Anda dapat mengatur
variabel terlebih dahulu dan kemudian memilih berbagai jenis database melalui INIT()
<%
'Pada Kesalahan Lanjutkan Berikutnya
KelasConnEx
Koneksi publik
jalur DB publik '---------jalur basis data
public DBtype '--------- Tipe database 1 (Akses) 2 (SqlServer) 3 (dapat diperluas)
public ConnMethod '-------- Metode koneksi (DSN, non-DSN)
Pengguna publik
tiket umum
Sub Kelas_inisialisasi
Akhir Sub
Sub Init()
ConnStr = "Driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("Date.mdb")
Setel ConnEx = Server.Createobject("ADODB.CONNECTION")
Sambungan.Buka SambunganStr
CatchError("Kelas_Terminate")
Akhir Sub
Sub CatchError( Str )
Jika Salah Lalu
Err. Jelas
Kelas_Terminate()
Response.Write("Kesalahan tertangkap, program berakhir! Di "&Str&"")
Respon.Akhir()
Akhiri Jika
Akhir Sub
'*********************************************
'*Mencari keberadaan catatan melalui pernyataan SQL rawan kesalahan'********************************* ** ******
Fungsi HasRecordBySql(Sql)
Panggil CheckSql(Sql,"R")
Redupkan Rs,HasR
Setel Rs = ConnEx.Execute( Sql )
CatchError("HasReordSql")
Jika Tidak (Rs.eof Atau Rs.bof) Lalu
HasR=Salah
Kalau tidak
HasR=Benar
Akhiri Jika
Rs.Tutup
Tetapkan Rs = Tidak Ada
HasRecordBySql = HasR
Fungsi Akhir
'*********************************************
'*Temukan apakah catatan itu ada berdasarkan ID'**********************************
Fungsi HasRecordById(StrTableName, IntID )
'Nilai Periksa(IntID, 1)
Redupkan Rs,HasR
Sql = "Pilih 1 * teratas dari "&StrTableName&" Where Id = "&IntID
Panggil CheckSql(Sql,"R")
Setel Rs = ConnEx.Execute(Sql)
CatchError("HasRecordByID")
Jika Tidak (Rs.eof Atau Rs.bof) Lalu
HasR=Salah
Kalau tidak
HasR=Benar
Akhiri Jika
Rs.tutup
Tetapkan Rs = Tidak Ada
HasRecordById = HasR
Fungsi Akhir
'*************************************************
'*Dapatkan kumpulan rekor melalui pernyataan SQL'****************************************** ** *****
Fungsi GetRsBySql( Sql )
Panggil CheckSql(Sql,"R")
Redupkan Rp
Setel Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Buka Sql,ConnEx,1,1
Tetapkan GetRsBySql = Rs
Fungsi Akhir
'*************************************************** *
'*Dapatkan nilai bidang tertentu'****************************************** ** ****
Fungsi GetValueBySql( Sql )
Panggil CheckSql(Sql,"R")
Redupkan Rs, ReturnValue
Setel Rs = ConnEx.Execute(Sql)
CatchError("GetValueBySql")
Jika Tidak (Rs.Eof Atau Rs.Bof ) Kemudian
Nilai Pengembalian = Rs(0)
Kalau tidak
ReturnValue = "Tidak ada catatan"
Akhiri Jika
Rs.Tutup
Tetapkan Rs = Tidak Ada
GetValueBySql = Nilai Pengembalian
Fungsi Akhir
'=============Update,Sisipkan= ====
'************************************************ ***
'*Gunakan SQL untuk mengubah data'********************************************* **
Fungsi UpdateBySql( Sql )
Panggil CheckSql(Sql,"w")
Sambungkan.Jalankan(Sql)
CatchError("UpdateBySql")
UpdateBySql = Benar
Fungsi Akhir
'*************************************************** *
'*Masukkan data menggunakan pernyataan SQL'********************************************* **
Fungsi SisipkanBySql(Sql)
Panggil CheckSql(Sql,"w")
Sambungkan.Jalankan(Sql)
CatchError("SisipkanBySql")
SisipkanBySql = Benar
Fungsi Akhir
'=======Hapus=======
'* ** ********************************************
'*Hapus melalui pernyataan SQL'********************************************* ***** *
Fungsi HapusOlehSql(Sql)
Panggil CheckSql(Sql,"D")
Sambungkan.Jalankan(Sql)
CatchError("HapusBySql")
DeleteBySql = Benar
Fungsi Akhir
'*************************************************** *
'*Periksa izin pernyataan SQL dan deteksi izin yang dimiliki oleh pernyataan tersebut sesuai dengan benderanya'****************************** **** *************
Sub CheckSql( Sql , Bendera )
Redupkan StrSql, SinCounts, DouCounts,i
StrSql = Lcase(Sql)
Jumlah Dosa = 0
Jumlah Dou = 0
Untuk i = 1 sampai Len(StrSql)
Jika Mid(StrSql,i,1) = "'" Maka SinCounts = SinCounts + 1
Jika Mid(StrSql,i,1) = """" Maka DouConnts = DouCounts + 1
Berikutnya
If (SinCounts Mod 2) <> 0 Atau (DouCounts Mod 2) <> 0 Atau Instr(StrSql,";") > 0 Kemudian
Panggil Class_Terminate()
Response.Write("Kesalahan sintaksis SQL!")
Respon.Akhir()
Akhiri Jika
Pilih Bendera Kasus
Kasus "R","r":
Jika Instr(StrSql,"delete") > 0 Atau Instr(StrSql,"update") Atau Instr(StrSql,"drop") > 0 Atau Instr(StrSql,"insert") > 0 Lalu
Kelas_Terminate()
Response.Write("Izin tidak mencukupi, tidak ada izin untuk melakukan operasi penulisan")
Respon.Akhir()
Akhiri Jika
Kasus "W","w":
Jika Instr(StrSql,"delete") > 0 Atau Instr(StrSql,"drop") > 0 Atau Instr(StrSql,"select") > 0 Lalu
Kelas_Terminate()
Response.Write("Izin tidak mencukupi, tidak ada izin untuk melakukan operasi penghapusan")
Respon.Akhir()
Akhiri Jika
Kasus "D","d":
Kasus Lain:
Response.Write("Kesalahan tanda Fungsi CheckSql!")
Pilihan Akhir
Akhir Sub
Sub Kelas_Terminate
Jika Bukan IsEmpty(FriendConn) Lalu
FriendConn.Tutup
Setel FriendConn = Tidak Ada
Kesalahan Tangkap()
Akhiri Jika
Akhiri Sub
Kelas Akhir
%>