ฟังก์ชั่นของโปรแกรมมีกรอบการทำงานทั่วไป จริงๆ แล้ว คุณสามารถเพิ่มฟังก์ชั่นบางอย่างได้ด้วยตัวเอง เช่น การเชื่อมต่อฐานข้อมูลเบื้องต้น คุณสามารถตั้ง
ค่าตัวแปรก่อน แล้วจึงเลือกฐานข้อมูลประเภทต่างๆ ผ่าน INIT()
<%
'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป'
คลาสคอนเน็กซ์
สาธารณะConnEx
DBpath สาธารณะ '-------------- เส้นทางฐานข้อมูล
public DBtype '-------------- ประเภทฐานข้อมูล 1 (การเข้าถึง) 2 (SqlServer) 3 (ขยายได้)
ConnMethod สาธารณะ '-------วิธีการเชื่อมต่อ (DSN, ไม่ใช่ DSN)
ผู้ใช้สาธารณะ
บัตรผ่านสาธารณะ
Class_initialize ย่อย
สิ้นสุด
ย่อยย่อย Init()
ConnStr = "ไดรเวอร์={ไดรเวอร์ Microsoft Access (*.mdb)};dbq="&Server.MapPath("Date.mdb")
ตั้งค่า ConnEx = Server.Createobject("ADODB.CONNECTION")
ConnEx เปิด ConnStr
CatchError("Class_Terminate")
สิ้นสุด
CatchError ย่อยย่อย (Str)
หากผิดพลาดแล้ว
ผิดพลาด.เคลียร์
Class_ยุติ()
Response.Write("เกิดข้อผิดพลาด โปรแกรมสิ้นสุด! ที่ "&Str&"")
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
จบซับ
'******************************************
'*การค้นหาการมีอยู่ของบันทึกผ่านคำสั่ง SQL มีแนวโน้มที่จะเกิดข้อผิดพลาด'************************************ ** ******
ฟังก์ชั่น HasRecordBySql(Sql)
โทร CheckSql(Sql,"R")
Dim Rs, HasR
ตั้ง Rs = ConnEx.Execute( Sql )
CatchError("HasReordSql")
ถ้าไม่ (Rs.eof หรือ Rs.bof) แล้ว
HasR=เท็จ
อื่น
HasR=จริง
สิ้นสุดถ้า
฿ปิด
ตั้งค่า Rs = ไม่มีเลย
HasRecordBySql = HasR
สิ้นสุดฟังก์ชัน
'******************************************
'*ค้นหาว่ามีบันทึกตาม ID หรือไม่'**********************************
ฟังก์ชั่น HasRecordById(StrTableName, IntID )
'ตรวจสอบค่า(IntID, 1)
Dim Rs, HasR
Sql = "เลือก 1 อันดับแรก * จาก "&StrTableName&" โดยที่ Id = "&IntID
โทร CheckSql(Sql,"R")
ตั้ง Rs = ConnEx.Execute (Sql)
CatchError("HasRecordByID")
ถ้าไม่ (Rs.eof หรือ Rs.bof) แล้ว
HasR=เท็จ
อื่น
HasR=จริง
สิ้นสุดถ้า
฿ปิด
ตั้งค่า Rs = ไม่มีเลย
HasRecordById = HasR
สิ้นสุดฟังก์ชัน
'************************************************
'*รับชุดบันทึกผ่านคำสั่ง SQL'**************************************** ** *****
ฟังก์ชั่น GetRsBySql(Sql)
โทร CheckSql(Sql,"R")
ติ่มซำ Rs
ตั้งค่า Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Open Sql,ConnEx,1,1
ตั้ง GetRsBySql = อาร์เอส
สิ้นสุดฟังก์ชัน
'************************************************ *
'*รับค่าของฟิลด์ใดฟิลด์หนึ่ง'****************************************** ** ****
ฟังก์ชั่น GetValueBySql( Sql )
โทร CheckSql(Sql,"R")
Rs ต่ำ, มูลค่าผลตอบแทน
ตั้ง Rs = ConnEx.Execute (Sql)
CatchError("GetValueBySql")
ถ้าไม่ใช่ ( Rs.Eof หรือ Rs.Bof ) จากนั้น
ค่าส่งคืน = ฿(0)
อื่น
ReturnValue = "ไม่มีบันทึก"
สิ้นสุดถ้า
฿ปิด
ตั้งค่า Rs = ไม่มีเลย
GetValueBySql = ค่าส่งคืน
สิ้นสุดฟังก์ชัน
'============================ อัปเดต, แทรก================ ====
'********************************************* ***
'*ใช้ SQL เพื่อแก้ไขข้อมูล'****************************************** **
ฟังก์ชั่น UpdateBySql( Sql )
โทร CheckSql(Sql,"w")
ConnEx.Execute (Sql)
CatchError("UpdateBySql")
UpdateBySql = จริง
สิ้นสุดฟังก์ชัน
'************************************************ *
'*แทรกข้อมูลโดยใช้คำสั่ง SQL'****************************************** **
ฟังก์ชั่น InsertBySql(Sql)
โทร CheckSql(Sql,"w")
ConnEx.Execute (Sql)
CatchError("InsertBySql")
InsertBySql = จริง
สิ้นสุดฟังก์ชัน
'====================== ลบ======================
'* ** *****************************************
'*ลบผ่านคำสั่ง SQL'********************************************* ***** *
ฟังก์ชั่น DeleteBySql(Sql)
โทร CheckSql(Sql,"D")
ConnEx.Execute (Sql)
CatchError("DeleteBySql")
DeleteBySql = จริง
สิ้นสุดฟังก์ชัน
'************************************************ *
'*ตรวจสอบสิทธิ์ของคำสั่ง SQL และตรวจสอบสิทธิ์ของคำสั่งตามแฟล็ก'****************************** **** *************
CheckSql ย่อย (Sql, Flag)
Dim StrSql, SinCounts, DouCounts, i
StrSql = Lcase(Sql)
จำนวนบาป = 0
จำนวนนับ = 0
สำหรับ i = 1 ถึง Len(StrSql)
ถ้า Mid(StrSql,i,1) = "'" ดังนั้น SinCounts = SinCounts + 1
ถ้า Mid(StrSql,i,1) = """" ดังนั้น DouConnts = DouCounts + 1
ถัดไป
ถ้า (SinCounts Mod 2) <> 0 หรือ (DouCounts Mod 2) <> 0 หรือ Instr(StrSql,";") > 0 จากนั้น
โทร Class_Terminate ()
Response.Write("ข้อผิดพลาดทางไวยากรณ์ SQL!")
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
เลือกแฟล็กกรณี
กรณี "ร", "ร":
ถ้า Instr(StrSql,"delete") > 0 หรือ Instr(StrSql,"update") หรือ Instr(StrSql,"drop") > 0 หรือ Instr(StrSql,"insert") > 0 จากนั้น
Class_ยุติ()
Response.Write("สิทธิ์ไม่เพียงพอ ไม่มีสิทธิ์ในการดำเนินการเขียน")
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
กรณี "W", "w":
ถ้า Instr(StrSql,"delete") > 0 หรือ Instr(StrSql,"drop") > 0 หรือ Instr(StrSql,"select") > 0 จากนั้น
Class_ยุติ()
Response.Write("สิทธิ์ไม่เพียงพอ ไม่มีสิทธิ์ในการดำเนินการลบ")
การตอบสนองสิ้นสุด()
สิ้นสุดถ้า
กรณี "ด", "ง":
กรณีอื่น:
Response.Write("ฟังก์ชันค่าสถานะ CheckSql ผิดพลาด!")
สิ้นสุดการเลือก
สิ้นสุด Sub
Sub Class_Terminate
ถ้าไม่ใช่ว่าง (FriendConn) แล้ว
FriendConn.ปิด
ตั้งค่า FriendConn = ไม่มีเลย
ข้อผิดพลาดในการจับ()
สิ้นสุดถ้า
จบหมวดย่อย
จบคลาส
-