وظائف البرنامج لها إطار عام. في الواقع، يمكنك إضافة بعض الوظائف بنفسك، مثل الاتصال الأولي بقاعدة البيانات. يمكنك تعيين
المتغيرات أولاً ثم تحديد أنواع مختلفة من قواعد البيانات من خلال INIT()
<%.
"عند حدوث خطأ في الاستئناف التالي."
كلاسكونيكس
publicConnEx
DBpath العام '--------- مسار قاعدة البيانات
نوع قاعدة البيانات العامة '--------- نوع قاعدة البيانات 1 (الوصول) 2 (SqlServer) 3 (قابل للتوسيع)
ConnMethod العامة '-------- طريقة الاتصال (DSN، غير DSN)
المستخدم العام
ممر عام
فئة فرعية_تهيئة
نهاية Sub
Sub Init ()
ConnStr = "Driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("Date.mdb")
تعيين ConnEx = Server.Createobject("ADODB.CONNECTION")
ConnEx.Open ConnStr
CatchError("Class_Terminate")
نهاية Sub
Sub CatchError (Str)
إذا أخطأت ثم
خطأ.واضح
Class_Terminate()
Response.Write("تم اكتشاف خطأ، وينتهي البرنامج! عند "&Str&"")
الاستجابة.النهاية ()
نهاية إذا
النهاية الفرعية
'*********************************************
'*البحث عن وجود سجلات من خلال عبارات SQL عرضة للأخطاء'********************************** ** ******
وظيفة HasRecordBySql(Sql)
استدعاء CheckSql(Sql،"R")
خافت روبية، HasR
تعيين Rs = ConnEx.Execute(Sql)
كاتشرور("HasReordSql")
إذا لم يكن (Rs.eof أو Rs.bof) ثم
هاسر = خطأ
آخر
هاسر = صحيح
نهاية إذا
إغلاق
تعيين روبية = لا شيء
HasRecordBySql = HasR
وظيفة النهاية
'******************************************
'*اكتشف ما إذا كان السجل موجودًا بواسطة المعرف'************************************
الوظيفة HasRecordById(StrTableName, IntID )
'قيمة التحقق (IntID، 1)
خافت روبية، HasR
Sql = "اختر أعلى 1 * من "&StrTableName&" حيث المعرف = "&IntID
استدعاء CheckSql(Sql،"R")
تعيين Rs = ConnEx.Execute(Sql)
كاتشرور ("HasRecordByID")
إذا لم يكن (Rs.eof أو Rs.bof) ثم
هاسر = خطأ
آخر
هاسر = صحيح
نهاية إذا
روبية قريبة
تعيين روبية = لا شيء
HasRecordById = HasR
وظيفة النهاية
'***************************************************
'*الحصول على مجموعة السجلات من خلال عبارة SQL'**************************************** ** *****
وظيفة GetRsBySql (Sql)
استدعاء CheckSql(Sql،"R")
خافت روبية
مجموعة Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Open Sql، ConnEx، 1،1
تعيين GetRsBySql = روبية
وظيفة النهاية
'*************************************************** *
'*الحصول على قيمة حقل معين'******************************************* ** ****
وظيفة GetValueBySql (Sql)
استدعاء CheckSql(Sql،"R")
خافت روبية، قيمة الإرجاع
تعيين Rs = ConnEx.Execute(Sql)
CatchError("GetValueBySql")
إذا لم يكن (Rs.Eof أو Rs.Bof) ثم
قيمة الإرجاع = روبية (0)
آخر
قيمة الإرجاع = "لا يوجد سجل"
نهاية إذا
إغلاق
تعيين روبية = لا شيء
GetValueBySql = ReturnValue
وظيفة النهاية
'=============تحديث، إدراج============================================= ====
'************************************************ ***
'*استخدم SQL لتعديل البيانات'****************************************** **
وظيفة UpdateBySql (Sql)
استدعاء CheckSql(Sql،"w")
كونيكس.تنفيذ (Sql)
CatchError("UpdateBySql")
UpdateBySql = صحيح
وظيفة النهاية
'*************************************************** *
'*إدراج البيانات باستخدام عبارات SQL'********************************************* **
وظيفة InsertBySql (Sql)
استدعاء CheckSql(Sql،"w")
كونيكس.تنفيذ (Sql)
CatchError("InsertBySql")
InsertBySql = صحيح
وظيفة النهاية
"======================== DELETE ======================
'* *****************************************************************************************************************************************************************
'*حذف عبر عبارة SQL'********************************************** ***** *
وظيفة حذف BySql (Sql)
استدعاء CheckSql(Sql،"D")
كونيكس.تنفيذ (Sql)
CatchError("DeleteBySql")
حذفBySql = صحيح
وظيفة النهاية
'*************************************************** *
'*تحقق من أذونات عبارة SQL واكتشف الأذونات المملوكة للبيان وفقًا للعلامة'****************************** **** *************
Sub CheckSql (Sql، Flag)
Dim StrSql,SinCounts,DouCounts,i
StrSql = Lcase(Sql)
عدد الخطايا = 0
عدد الأعداد = 0
لأني = 1 إلى لين (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_Terminate()
Response.Write("الأذونات غير كافية، لا يوجد إذن لإجراء عمليات الكتابة")
الاستجابة.النهاية ()
نهاية إذا
الحالة "ث"، "ث":
إذا كان Instr(StrSql,"delete") > 0 أو Instr(StrSql,"drop") > 0 أو Instr(StrSql,"select") > 0 إذن
Class_Terminate()
Response.Write("الأذونات غير كافية، لا يوجد إذن لإجراء عملية الحذف")
الاستجابة.النهاية ()
نهاية إذا
الحالة "د"، "د":
حالة أخرى:
Response.Write("خطأ في إشارة وظيفة CheckSql!")
إنهاء التحديد
نهاية Sub
Sub Class_Terminate
إذا لم يكن فارغًا (FriendConn) إذن
فريندكون.إغلاق
تعيين FriendConn = لا شيء
خطأ كاتش ()
نهاية إذا
نهاية الفرعية
نهاية الفصل
%>