Saya menemukannya dengan mencari informasi di Internet, tetapi saya menemukan beberapa masalah saat debugging. Setelah beberapa modifikasi, masih ada beberapa masalah, tetapi dapat digunakan untuk penggunaan umum. Masalah tipe data dan perbedaan antara SQL Server dan akses tidak dipertimbangkan. Saya akan memperbaikinya ketika saya punya waktu di masa depan. Jika ada yang memperbaikinya, kirimkan saya salinannya.
Salin kode sebagai berikut:<%
class SQLString
'************************************
'Definisi variabel
' ************************************
'sTableName ----
nama tabel'iSQLType --- - Tipe pernyataan SQL: 0-add, 1-update, 2-delete, 3-query'sWhere
---- condition'sOrder
----
metode pengurutan'sSQL ---- value
Private sTableName,iSQLType,sWhere,sOrder , sSQL
'***************************************
'Inisialisasi/akhir kelas
'************************************
Sub Pribadi Class_Initialize()
sTableName=
iSQLType =0
sWhere=
sOrder=
sSQL=
Sub Akhir
Sub Pribadi Class_Terminate()
Sub Akhir
'******************************* ** **
'Atribut
'************************************
'Tetapkan atribut
Publik dari nama tabel Properti Let TableName(nilai)
sTableName=nilai
Properti Akhir
'Tetapkan kondisi
Properti Publik Biarkan Dimana(nilai)
sWhere=nilai
Properti Akhir
'Atur metode penyortiran
Properti Publik Biarkan Pesanan(nilai)
sOrder=nilai
Properti Akhir
'Atur jenis pernyataan kueri
Properti publik Biarkan SQLType(nilai)
iSQLType=nilai
pilih kasus iSQLType
kasus 0
sSQL=masukkan ke dalam {&*#}0 ( {& *#}1) nilai ({&*#}2)
kasus 1
sSQL=perbarui {&*#}0 set {&*#}1={&*#}2
kasus 2
sSQL=hapus dari {&*#}0
kasus 3
sSQL=pilih {&*#}1 dari {&*#}0
akhir pilih
Properti Akhir
'******************** ****************
'Fungsi
'****************************** * ****
'Tambahkan bidang (nama bidang, nilai bidang)
Sub Publik AddField(sFieldName,sValue)
pilih case iSQLType
case 0
sSQL=replace(sSQL,{&*#}1,sFieldName & ,{&*#}1 )
sSQL=ganti(sSQL,{&*#}2, & sValue & ,{&*#}2)
kasus 1
sSQL=ganti(sSQL,{&*#}1,sFieldName)
sSQL=ganti(sSQL,{&* #}2, & sValue & ,{&*#}1={&*#}2)
kasus 3
sSQL=replace(sSQL,{&*#}1,sFieldName & ,{&*#}1)
End Select
End Sub
'Fungsi yang dimodifikasi yang mengembalikan nilai string
' Return SQL statement
Public Function ReturnSQL()
sSQL=replace(sSQL , {&*#}0,sTableName)
pilih kasus iSQLType
kasus 0
sSQL=replace(sSQL,,{&*#}1,)
sSQL=ganti(sSQL,,{&*#}2,)
kasus 1
sSQL=ganti(sSQL,,{&*#}1={&*#}2,)
kasus 3
sSQL=ganti(sSQL,,{& *#}1,)
end Pilih
jika sWhere<> dan iSQLType<>0 lalu
sSQL=sSQL & di mana & sWhere
berakhir jika
if sOrder<> dan iSQLType<>0 lalu
sSQL=sSQL & urutkan berdasarkan & sOrder
berakhir jika
ReturnSQL=sSQL
End Function
'Kembalikan pernyataan SQL
Fungsi Publik ReturnSQL1()
sSQL=replace(sSQL,{&*#}0,sTableName)
pilih case iSQLType
case 0
sSQL=replace(sSQL, ,{&*#}1,)
sSQL=ganti(sSQL,,{&*#}2,)
kasus 1
sSQL=replace(sSQL,,{&*#}1={&*#}2,)
case 3
sSQL=replace(sSQL,,{&*#}1,)
end Pilih
jika sWhere<> dan iSQLType<>0 lalu
sSQL=sSQL & di mana & sWhere
berakhir jika
jika sOrder<> dan iSQLType<>0 maka
sSQL=sSQL & diurutkan berdasarkan & sOrder
berakhir jika
ReturnSQL=sSQL
Fungsi Akhir
'Hapus pernyataan
Public Sub Clear()
sTableName=
iSQLType=0
sWhere=
sOrder=
sSQL=
End Sub
End class
%>
Contoh panggilan:
<%
set a =new SQLString 'Buat objek kelas
a.TableName= pesan 'Tetapkan nama tabel ke pesan
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 'Setel jenis kueri untuk menambahkan catatan
a.AddField incept, '2'
a.AddField sender , '%3%'
a.AddField title , #&now&#
a.AddField sender , 5
a.AddField content , 6
a.AddField sendtime , 7
a.AddField flag, 8
a.AddField issend , 9
Respons. Tulis a.ReturnSQl
set a=tidak ada
%>
<%
set a =SQLString baru 'Buat objek kelas
a.TableName= pesan 'Atur nama tabel pesan
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 'Atur jenis kueri untuk menambahkan catatan
a.AddField incept, ' 2'
a.AddField pengirim , '%3%'
a.AddField judul , #&sekarang&#
a.AddField pengirim , 5
a.AddField konten , 6
a.AddField sendtime , 7
a.AddField flag, 8
a.AddField issend , 9
Response.Write a.ReturnSQl
set a=nothing
%>
<%
set a =new SQLString 'Buat objek kelas
a.TableName= pesan 'Tetapkan nama tabel Untuk pesan
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 'Setel jenis kueri untuk menambahkan catatan
a.AddField incept, '2'
a.AddField sender , '%3%'
a.AddField title , #&now&#
a.AddField sender , 5
a.AddField content , 6
a.AddField sendtime , 7
a.AddField flag, 8
a.AddField issend, 9
Response.Write a.ReturnSQl
disetel a=tidak ada
%>