ฉันพบมันโดยการค้นหาข้อมูลบนอินเทอร์เน็ต แต่ฉันพบปัญหาบางอย่างในระหว่างการแก้ไขจุดบกพร่อง หลังจากแก้ไขแล้ว ยังคงมีปัญหาอยู่บ้าง แต่ก็สามารถใช้งานได้ทั่วไป ปัญหาประเภทข้อมูลและความแตกต่างระหว่าง SQL Server และการเข้าถึงไม่ได้รับการพิจารณา ฉันจะปรับปรุงเมื่อฉันมีเวลาในอนาคต ฉันไม่รู้ว่ามันจะมีประสิทธิภาพแค่ไหน หากใครปรับปรุงกรุณาส่งสำเนามาให้ฉันด้วย
คัดลอกรหัสดังนี้:<%
class SQLString
'************************************
'คำจำกัดความของตัวแปร
' ************************************
'sTableName ---- ชื่อตาราง
'iSQLType --- - ประเภทคำสั่ง SQL: 0-เพิ่ม, 1-อัปเดต, 2-ลบ, 3-query'sWhere
---- เงื่อนไข'sOrder
---- วิธีการเรียง
ลำดับ'sSQL ---- ค่า
Private sTableName,iSQLType,sWhere,sOrder , SQL
'************************************
'การเริ่มต้นคลาส/สิ้นสุด
'************************************
Class_Initialize ส่วนตัวย่อย ()
sTableName=
iSQLType =0
sWhere=
sOrder=
sSQL=
สิ้นสุด Sub
Private Sub Class_Terminate()
สิ้นสุด Sub
'********************************* ** **
'แอตทริบิวต์
'************************************
'ตั้งค่าแอตทริบิวต์
สาธารณะของชื่อตารางคุณสมบัติให้ TableName(value)
sTableName=value
End Property
'กำหนดเงื่อนไข
Public Property Let Where(value)
sWhere=value
End Property
'ตั้งค่าวิธีการเรียงลำดับ
คุณสมบัติสาธารณะ Let Order(value)
sOrder=value
End Property
'ตั้งค่าประเภทของคำสั่งแบบสอบถาม
คุณสมบัติสาธารณะ ให้ SQLType(value)
iSQLType=value
เลือกกรณี iSQLType
case 0
sSQL=insert into {&*#}0 ( {& *#}1) ค่า ({&*#}2)
กรณี 1
sSQL=update {&*#}0 ชุด {&*#}1={&*#}2
กรณี 2
sSQL=delete จาก {&*#}0
case 3
sSQL=select {&*#}1 จาก {&*#}0
end เลือก
End Property
'********************* ****************
'การทำงาน
'****************************** * ****
'เพิ่มฟิลด์ (ชื่อฟิลด์, ค่าฟิลด์)
Public Sub AddField(sFieldName,sValue)
เลือกกรณี iSQLType
case 0
sSQL=replace(sSQL,{&*#}1,sFieldName & ,{&*#}1 )
sSQL=แทนที่(sSQL,{&*#}2, & sValue & ,{&*#}2)
กรณีที่ 1
sSQL=แทนที่(sSQL,{&*#}1,sFieldName)
sSQL=แทนที่(sSQL,{&* #}2, & sValue & ,{&*#}1={&*#}2)
กรณีที่ 3
sSQL=replace(sSQL,{&*#}1,sFieldName & ,{&*#}1)
End Select
End Sub
'Modified function that return a string value
' Return คำสั่ง SQL
Public Function ReturnSQL()
sSQL=replace(sSQL , {&*#}0,sTableName)
เลือกกรณี iSQLType
กรณี 0
sSQL=replace(sSQL,,{&*#}1,)
sSQL=แทนที่(sSQL,,{&*#}2,)
กรณีที่ 1
sSQL=แทนที่(sSQL,,{&*#}1={&*#}2,)
กรณีที่ 3
sSQL=แทนที่(sSQL,,{& *#}1,)
สิ้นสุด เลือก
if sWhere<> และ iSQLType<>0 แล้ว
sSQL=sSQL & โดยที่ & sWhere
สิ้นสุดถ้า
if sOrder<> และ iSQLType<>0 แล้ว
sSQL=sSQL & เรียงลำดับตาม & sOrder
สิ้นสุดถ้า
ReturnSQL=sSQL
End Function
'ส่งคืนคำสั่ง SQL
Public Function ReturnSQL1()
sSQL=replace(sSQL,{&*#}0,sTableName)
เลือกกรณี iSQLType
case 0
sSQL=replace(sSQL, ,{&*#}1,)
sSQL=replace(sSQL,,{&*#}2,)
กรณีที่ 1
sSQL=replace(sSQL,,{&*#}1={&*#}2,)
case 3
sSQL=replace(sSQL,,{&*#}1,)
end เลือก
ถ้า sWhere<> และ iSQLType<>0 จากนั้น
sSQL=sSQL & โดยที่ & sWhere
สิ้นสุดถ้า
ถ้า sOrder<> และ iSQLType<>0 ดังนั้น
sSQL=sSQL & สั่งซื้อโดย & sOrder
สิ้นสุดหาก
ReturnSQL=sSQL
End Function
'คำสั่งที่ชัดเจน
สาธารณะย่อย Clear()
sTableName=
iSQLType=0
sWhere=
sOrder=
sSQL=
End Sub
End class
%>
ตัวอย่างการโทร:
<%
set a =new SQLString 'สร้างวัตถุคลาส
a.TableName= ข้อความ 'ตั้งชื่อตาราง ไปที่ข้อความ
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 'ตั้งค่าประเภทแบบสอบถามเพื่อเพิ่มระเบียน
a.AddField incept, '2'
a.AddField ผู้ส่ง , '%3%'
a.AddField title , #&ตอนนี้คือ
a.AddField ผู้ส่ง , 5
a.AddField content , 6
a.AddField sendtime , 7
a.AddField flag, 8
a.AddField issend , 9
Response เขียน a.ReturnSQl
set a=nothing
%>
<%
set a =new SQLString 'สร้างคลาสออบเจ็กต์
a.TableName= ข้อความ 'ตั้งค่าข้อความชื่อตาราง
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 'ตั้งค่าประเภทแบบสอบถามเพื่อเพิ่มบันทึก
a.AddField incept, ' 2'
a.AddField sender , '%3%'
a.AddField title , #ตอนนี้คือ
a.AddField sender , 5
a.AddField content , 6
a.AddField sendtime , 7
a.AddField flag, 8
a.AddField issend , 9
Response.Write a.ReturnSQl
set a=nothing
%>
<%
set a =new SQLString 'สร้างวัตถุคลาส
a.TableName= ข้อความ 'ตั้งชื่อตาราง สำหรับข้อความ
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 'ตั้งค่าประเภทแบบสอบถามเพื่อเพิ่มบันทึก
a.AddField incept, '2'
a.AddField sender , '%3%'
a.AddField title , #&ตอนนี้คือ
a.AddField sender , 5
a.AddField content , 6
a.AddField sendtime , 7
a.AddField flag, 8
a.AddField ถูกส่ง, 9
Response.Write a.ReturnSQl
set a=ไม่มีอะไร
%>