فئة
اتصال سيكيول SqlConnection
Class
هذه
الفئة ترث الفئة DbConnection،
ما يعني أنها ضمنيا ترث الفئة Component وتمثل الواجهة IDbConnection.
وبالإضافة
إلى الخصائص التي ترثها من الفئة الأم، تمتلك هذه الفئة الخصائص التالية:
إطلاق حدث الخطأ FireInfoMessageEventOnUserErrors:
إذا جعلت قيمة هذه الخاصية True، فسيتم إطلاق الحدث InfoMessage فور حدوث خطأ في الاتصال، ودون انتظار انتهاء تنفيذ الإجراء الذي أنشأ
الاتصال.. أما إذا تركت قيمتها الافتراضية False، فسينطلق استثناء Exception في البرنامج عند حدوث خطأ في الاتصال، ولم ينطلق الحدث InfoMessage إلا بعد انتهاء تنفيذ الإجراء الذي أنشأ الاتصال.
حجم حزم البيانات PacketSize:
تعيد حجم حِزم البيانات (بالوحدة الثنائية Byte) المستخدمة في نقل البيانات.
تفعيل الإحصائيات StatisticsEnabled:
إذا جعلت قيمة هذه الخاصية True، فسيتم جمع إحصائيات عن عملية الاتصال.. لاحظ أن هذا مفيد في بعض
الحالات، لكنه قد يؤدي إلى إبطاء الاتصال، لهذا لا تستخدمه إلا للضرورة.. والقيمة
الافتراضية لهذه الخاصية هي False.
معرف الجهاز WorkstationId:
تعيد اسم جهاز العميل المتصل بالخادم.
وبالإضافة
إلى ما تمثله من وسائل الواجهة IDbConnection، تمتلك هذه الفئة الوسائل التالية:
تغيير كلمة السر ChangePassword:
أرسل إلى هذه الوسيلة نص الاتصال، وكلمة السر
الجديدة التي تريد استخدامها مع المستخدم المحدد في نص الاتصال بدلا من كلمة السر
القديمة.. هذا معناه أن نص الاتصال يجب أن يحتوي على اسم المستخدم UserID وكلمة السر القديمة Password، لهذا لو أرسلت نص اتصال فيه خيار الحماية المتكاملة IntegratedSecurity فسيحدث خطأ.
وتقوم هذه الوسيلة بفتح اتصال خاص بها لتغيير
كلمة السر، وإغلاقه فور الانتهاء من هذا، دون التعامل مع رصيد الاتصالات المساهمة Connection
Pool.
وتفيدك هذه الوسيلة إذا كانت كلمة السر الخاصة
بالمستخدم قد انتهت صلاحيتها Expired ويجب تغييرها.. ويمكنك معرفة هذا عند استخدام الوسيلة Open لفتح الاتصال، حيث سيحدث خطأ في البرنامج من النوع SqlException، وعليك أن تفحص قيمة الخاصية Number الخاصة بهذا الاستثناء، فإن وجدت قيمتها 18487 أو 18488 فهذا
معناه انتهاء صلاحية كلمة السر ووجوب تغييرها.
والمثال التالي يحاول الاتصال بالخادم، فإن فشل
الاتصال بسبب انتهاء صلاحية كلمة السر، فإنه يغير كلمة السر القديمة:
Dim Csb As New
SqlConnectionStringBuilder
Csb.DataSource =
".\SQLEXPRESS"
Csb.InitialCatalog =
"Books"
Csb.UserID = "User1"
Csb.Password = "2009"
Dim Cn As New
SqlConnection(Csb.ToString)
Try
Cn.Open()
Catch ex As SqlException
If ex.Number = 18487
OrElse ex.Number = 18488 Then
SqlConnection.ChangePassword(Csb.ToString, "2010")
End If
End Try
إلغاء المساهمة ClearPool:
أرسل إلى هذه الوسيلة كائن الاتصال SqlConnection
Object لإلغاء الاتصال الذي
يمثله من رصيد الاتصالات المساهمة Connection Pool.. لاحظ أن هذا الاتصال قد يكون مستخدما في تلك اللحظة لأداء بعض
الاستعلامات، لهذا يتم إنهاؤه في الحال، وسيظل مستخدما إلى حين إغلاقه باستخدام
الوسيلة Close، وعندها لن يعود إلى رصيد الاتصالات المساهمة، بل سيغلق في
الحال.. مثال:
SqlConnection.ClearPool(Cn)
إلغاء كل أرصدة
المساهمة ClearAllPools:
تغلق جميع الاتصالات الموجودة في رصيد الاتصالات
المساهمة Connection Pool، وإذا كان بعضها مستخدما، لا يتم إنهاؤه إلى أن يتم استدعاء
الوسيلة Close الخاصة به.. مثال:
SqlConnection.ClearAllPools( )
إضافة إلى قائمة التعاملات المنتشرة EnlistDistributedTransaction:
مماثلة للوسيلة EnlistTransaction.
الحصول على الإحصائيات RetrieveStatistics:
تعيد مجموعة تمثل واجهة القاموس IDictionary، تحتوي على أزواج من المفاتيح Keys والقيم Values،
تمثل إحصائيات الاتصال حتى هذه اللحظة.. ويمكنك استدعاء هذه الوسيلة أكثر من مرة
على فترات، للحصول على أحدث قيم للإحصائيات.. لاحظ أنك لن تحصل على أي إحصائيات
إلا إذا جعلت للخاصية StatisticsEnabled القيمة True
أولا.
تصفير الإحصائيات ResetStatistics:
تعيد جميع قيم الإحصائيات إلى الصفر.
كما
تمتلك هذه الفئة الحدث التالي:
رسالة المعلومات InfoMessage:
ينطلق عندما يرسل الخادم رسالة تحذير أو خطأ..
والمعامل الثاني e
لهذا الحدث من النوع SqlInfoMessageEventArgs، وهو يمتلك الخصائص التالية:
Errors
|
تعيد
مجموعة من النوع SqlErrorCollection، التي تمثل الواجهة ICollection، وكل عنصر من عناصرها من نوع الفئة SqlError، التي تحتوي على أحد الأخطاء أو التحذيرات التي أرسلها خادم
سيكويل.. وسنتعرف على الفئة SqlError بعد قليل.
|
|
Message
|
تعيد
نصا يشرح أول خطأ موجود في مجموعة الأخطاء Errors.. هذا مفيد إن كان هناك خطا واحد فقط.
|
|
Source
|
تعيد
نصا يحدد اسم الكائن الذي تسبب في أول خطأ موجود في مجموعة الأخطاء Errors.. هذا مفيد إن كان هناك خطا واحد فقط.
|
من
كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.