منتديات الراشدية





أهلا وسهلا بك في منتديـــــــــــــات الراشدية
يرجى منك التعريف بنفسك إن كنت من أعضاء المنتدى الكرام
أو تفضل بالتسجيل لتفيد وتستفيد معنــــــــــــــــــا.



/
 
الرئيسيةس .و .جبحـثالتسجيلدخول

شاطر | 
 

 قواعد البيانات في دلفي : DataBases In Delphi

اذهب الى الأسفل 
كاتب الموضوعرسالة
HMFouad
--------------------------
--------------------------
avatar

ذكر عدد الرسائل : 3640
العمر : 28
العمل : Etudiant
مكان الاقامة : Tiaret
تاريخ التسجيل : 21/09/2008

مُساهمةموضوع: قواعد البيانات في دلفي : DataBases In Delphi   الإثنين 3 أغسطس 2009 - 11:01



19




إن
دعم دلفي اللامحدود لقواعد البيانات يعتبر من أهم سمات هذة اللغة , ومنذ
بدايات دلفي أخذت سيطا واسع الإنتشار عن قوة دعمها لقواعد البيانات .

سوف نتكلم في هذة المقالة عن دعم دلفي الواسع لقواعد البيانات ..

الوصول إلى قاعدة البيانات لمحة تاريخية :

Accessing a Database: BDE, dbExpress, and Other Alternatives



في بدايات دلفي كان الدعم الوحيد لقواعد البيانات من خلال محرك قواعد بيانات بورلاند BDE (Borland DataBase Engine) ,

ومنذ دلفي 3 توسع شريط أدوات دلفي المتعلق بقواعد البيانات ليشمل كمية أكبر وأفضل من الأدوات التحكمية , .

دلفي 5 شهدت بدايات دعم الـADO (Microsoft Active X Data Object ) وكذلك الـ IBX (InterBase Express )

دلفي 6 أضافت DBExpress إلى القائمة , والذي هو أداة جديدة تدعم
تعدد_المنصات ومكونات دخول إلى قواعد البيانات تتسم بالإستقلال والمحمولية
, تم تطويرها من قبل بورلاند وهي مرفقة مع كايلكس على لينكس ودلفي على
ويندوز .



محرك قواعد بيانات بورلاند : Borland Database Engine (BDE)

تم إنشاء ال BDE مع جداول البارادوكس , حتى قبل أن تكون دلفي قد وجدت بعد
. ثم قامت بورلاند بتوسيعة لاحقا ليدعم قواعد بيانات محلية أخرى والعديد
من مخدمات الـ SQL (SQL Servers) كذلك ,

يستطيع BDE تأمين دخول مباشر إلى dBASE,Paradox,ASCII,FoxPro, وجداول Access .

وكذلك لة مجموعة من المشغلات (Drivers) تسمى Sql Links وهي متاحة فقط على
النسخة Delphi Enterprise تسمح بالدخول إلى بعض مخدمات الSQL , مثل
Oracle,Sybase,Microsoft,Informix,InterBase, DB2 servers.

وإذا أردت الدخول إلى قاعدة بيانات أخرى غير متوفرة فإن الBDE يستطيع التعامل مع مشغلات الـ ODBC أيضا .



الميزة الخاصة لإستخدام الـ BDE أن هذة التقنية مدمجة ومضمنة بشكل جيد جدا
في دلفي , وعناصرة مدعومة بشكل جيد بالشرح والمساعدة في دلفي , وهو الحل
الحيوي الأساسي للدخول إلى قواعد بيانات محلية مثل Paradox و Dbase
وسيئات هذا الخيار أن بورلاند قد أوقفت دعمة وتطويرة , ولن يتوفر لة تحديثات مستقبلية فيما بعد ,
كما أنك بحاجة إلى تنصيبة وإعدادة على جهاز الزبون ,

وهو محرك ثقيل الوزن يتطلب الكثير من ملفات التنصيب ومتطلبات الذاكرة , وهو متاح فقط على ويندوز ,.

إذا كنت قد بنيت تطبيقات قواعد بيانات محلية بإستخدامة , فلا توجد حاجة
للضيق ذرعا بة ومحاولة تبديلة مبكرا مالم تكن تفكر بنقل تطبيقاتك إلى
لينكس , أو تتوقع تبديل قواعد بيانات مستقبلا بنوع غير معروف الآن .

أما إذا كنت تستخدم مخدم Sql فإني أرى النقل إلى تقنية ربط أخرى خيارا واردا , حسب حاجاتك وتوقعاتك .

يوجد ثلاث أنواع من عناصر الـ DataSet في BDE هيTable و Queryو StoredProc
بالإضافة إلى UpdateSQL المستخدمة بالإتصال مع عنصر الQuery .

المكونان DataBase و Session يستخدمان لإعداد الإتصال مع قاعدة البيانات , والعنصر BatchMove يستخدم من أجل نسخ البيانات , .



المكون ADO : ActiveX Data Objects :

ADO وهو إختصار للعبارة ActiveX Data Objects هو واجهة عالية المستوى من
مايكروسوفت من أجل الوصول (دخول) قواعد البيانات , ينفذ ADO على تقنية
Microsoft ’s data-access OLE DB والذي يسمح بالوصول إلى قواعد البيانات
العلائقية وغير العلائقية كذلك البريد الإلكتروني ونظم الملفات وبعض
الأغراض الأخرى .

يملك محرك ADO خصائص ومميزات مشابهه لل BDE حيث

يدعم قواعد البيانات المحلية ومخدمات الـ SQL كذلك , وهو أيضا محرك ثقيل
الوزن حقيقي مثل BDE , تتصف إعداداتة بإنها بسيطة وسهلة (لإنة ليس مركزيا)
,كما أن التنصيب من الناحية النظرية ليس مهما (!..)

الجميل أن هذا المحرك يأتي مضمنا مع الإصدارات الحالية (الحديثة) من النظام ويندوز .....

ولكن لتعلم على كل حال أن التوافقية المحدودة بين الإصدارات المختلفة للـ
ADO مع نفسة سوف تجبرك على تحديث أجهزة المستخدمين ليملكو نفس إصدارة
الADO التي إستخدمتها لتطوير البرنامج ونفس الحجم من MDAC (Microsoft Data
Access Components) والذي سوف يحدث جزء كبير من نظام التشغيل مما يجعل هذة
العملية بعيدة عن البساطة والسهولة ... .

ببساطة ADO ليس متوافقا مع نفسة ومع إصداراتة اللاحقة ., وهذا حال مايكروسوفت دومــا ...

إن إستخدام ADO مع Access أو SQLServer يؤمن بلا شك بعض الميزات الإضافية
, لإنها مشغلات مايكروسوفت تعمل على قواعد بيانات مايكروسوفت, يعني
بالعامية منقول أهلية بمحلية , لذلك توقع أداء متماسكا في هذة الحالة .

إن إستخدام ADO من أجل Access يعتبر حلا جيدا , ولكن إذا كنت تخطط
لإستخدام مخدم SQL آخر أولا عليك التأكد من توافر مشغلات جيدة لة
(Drivers) – ربما تظهر لك بعض المفاجأات ..

ADO قوي تماما , ولكن عليك أن تتأقلم معه جيدا ... , إنة موجود فعليا بين تطبيقك وقاعدة البيانات .

ومن الجانب المضاد : لا تستخدم ADO إذا كنت تفكر بالتطوير متعدد-المنصات
لإن هذة التقنية الخاصة بمايكروسوفت غير متوفرة من أجل نظام تشغيل آخر .

بإختصار . إستخدم ADO إذا كنت تخطط للعمل فقط على ويندوز وتريد إستخدام
Access أو قواعد بيانات مايكروسوفت أخرى , أو أنك عثرت على مزود OLE DB
جيد من أجل قاعدة البيانات التي تخطط لإستخدامها , .



مكتبة الـ dbExpress : The dbExpress Library

إحدى خصائص النسخة السادسة6من دلفي هي بداية مكتبة قواعدبيانات DBExpress من أجل منصة الويندوز .

أنا أقول مكتبة لإنة وعلى عكس الـ BDE والـ ADO فإن DBExpress يعتبر خفيف
الحجم تماما , وأضع خطا تحت ويندوز لإن نفس المكتبة متوفرة على لينكس من
أجل كايلكس Kylix .

أن أهم ميزتين في DBExpress هي أن يكون خفيفا ومحمولا (سهل التنقل) . وهما السبب الكامن وراء إنتاجة من شركة بورلاند .

وأهم مايميزة بالتالي هو أنة وبشكل أساسي لا يحتاج إلى أي إعدادات على جهاز الزبون .....

وبالمقارنة مع البقية فإن DBExpress محدود بالقدرات , فهولايستطيع الدخول
إلا على مخدمات الـSQL , (وبالتالي لاقواعد بيانات محلية .....) كما أنة
لايملك مقدرات التخزين المؤقت (no caching capabilities) , ويؤمن فقط
الإتصال غير الموجة مع البيانات ...

كنظرة أولى ربما تظن أن هذة الأداة عديمة النفع وغير جيدة ... ؟؟؟

وبالمقابل هذة هي الميزات التي جعلتها ومميزة وقويه :

الإتصال غير الموجة مع البيانات وبدون أي تحديث موجة هو الحالة المعيارية
في حال كنت تريد خدمات طباعة التقارير وتوليد ملفات html , أو إظهار
محتويات قاعدة البيانات .

إذا كنت تريد بناء واجهات مستخدم لتعديل البيانات بدلا من ذلك , تذكر بإن
دلفي تملك أدوات خاصة (ClientDataSet ) والتي تؤمن حلول الإستعلامات
والتخزين المؤقت.. (caching and query resolution.) . فإذا دمجت DBExpress
معها فإنك ستحصل على أداء رائع ومتفوق ,

هذة المكونات تسمح لتطبيقك المبني على DBExpress بإمتلاك تحكم أكثر
بكثيرمن بإستخدام محرك قواعد بيانات منفصل. والذي يقوم بأمور إضافية لك ,
لكنة يقوم بة بالطريقة التي يريدها هو وليست الطريقة التي تريدها أنت .

لاتنسى أن DBExpress لايسمح لك بالخطأ ويجبرك على إتخاذ حلول سريعة وقويه .

ومن المهم جدا أن تفكر بإن بورلاند قد نشرت هذة المكتبة , وهي الخيار
الحيوي الوحيد المتاح من أجل لينكس , وقد أوقفت بورلاند تطوير BDE وتطور
DBExpress بدلا عنة ,, ذلك فإن المستقبل لها ولن تتوقف بورلاند عن دعمها
في المدى القريب وسوف تستمر بتحديثها . لذلك فإن التفكير في الDBExpress
كحل في البرامج هو رأي سديد , وكذلك التفكير في تحديث برامج قواعد بيانات
أخرى إلى هذة البنية الجديدة DBExpress ...



محرك إنتربيز InterBase Express (IBX) :

إن إنتربيز سيرفر هو منتج بورلاند مفتوح- المصدر ... والأجمل أنة مجاني كذلك ,...

على عكس BDE و ADO و DBExpress فإنExpress InterBase ليس محرك مخدم قواعد
بيانات مستقل , وإنما تقنية من أجل دخول مخدم قواعد بيانات محدد (وهو
InterBase) , فإذا كنت تخطط لإستخدام InterBase فقط كنظام إدارة قواعد
بياناتك العلائقية (your back-end RDBMS,) فإن إستخدام هذة المجموعة من
العناصر سوف تمنحك التحكم الأعلى لهذا المخدم , وتقدم الأداء الأفضل ,
وتسمح لك كذلك بالتحكم والمحافظة على المخدم من خلال تطبيق زبون عادي .....

ملاحظة : إن إستخدام InterBaseExpress يلقي الضوء على إستخدام عناصر مخصصة
للإتصال بنوع محدد من قواعد البيانات , والتي هي متوفرة من أجل العديد من
الأنواع مثل Oracle, Access, dBase والعديد ...

وبإختصار فإنك تستطيع إستخدام InterBaseExpress إذا كنت متأكدا أنك لن
تغير نوع قاعدة بياناتك في المستقبل , وتريد تحقيق الأداء الأعلى والتحكم
الأفضل على حساب الإستقرارية والمحمولية ...

والمشكلة الأساسية لهذا النوع من الأدوات , أنة إذا لم يحقق لك هذا الأداء
الأعلى ما تريدة فإنك ستضطر للبحث على مكونات خاصة بنوع آخر من البيانات
وتضطر لتعلمها وتعلم حالاتها الخاصة من جديد ,, بدلا من تعلم محرك قواعد
بيانات عام يسهل عليك تغيير النوع أو التعلم ....



العنصر ClientDataSet :

وأخيرا يوجد عنصر مشتق من TdataSet والذي يملك سلوك خاص ويمكن دمجة مع أدوات وصول لقواعد بيانات أخرى

في الحقيقة إن عنصر الـ ClientDataSet يستخدم للدخول إلى بيانات مخزنة
بالذاكرة , البيانات المخزنة بالذاكرة هي بيانات مؤقتة بشكل كامل , وسوف
تفقد عندما تقوم بإغلاق برنامجك . يمكن حفظها إلى ملف محلي وتوريدها إلى
عنصر إتصال آخر ..

ماأريد قوله أن إستخدام ClientDataSet لوحدة غير مناسب إلا للمشاريع
الصغيرة (يحمل كل السجلات إلى الذاكرة دفعة واحدة) مع أنه يعتبر أكثر عنصر
قواعد بيانات يملك دوال تحكم والميزات الموجودة فيه أفضل من غيرة وغير
موجودة في BDE أو ADO ..... ولكن يمكن كما أتفقنا أن ندمجه مع جداول
DbExpress عن طريق مزود Provider مرفق مع DbExpress يقوم بكل العمل عوضا
عنك . وبهذه الطريقة نكون قد أستفدنا من كل ميزات ClientDataSet ونحن نعمل
على ملفات مؤقته على جهازنا , وعند الحاجة نقوم بإرسال هذة الملفات دفعة
واحدة أو عند كل حفظ أو حذف إلى السيرفر وبالتالي الإستفادة من كل ميزات
DbExpress كذلك .


_________________




الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://hmfouad.blogspot.com/
Yacine
--------------------------
--------------------------
avatar

ذكر عدد الرسائل : 2352
العمر : 30
العمل : ما كتب الله
مكان الاقامة : أرض الله واسعة
تاريخ التسجيل : 22/09/2008

مُساهمةموضوع: رد: قواعد البيانات في دلفي : DataBases In Delphi   الجمعة 14 أغسطس 2009 - 20:03


19

23

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
HMFouad
--------------------------
--------------------------
avatar

ذكر عدد الرسائل : 3640
العمر : 28
العمل : Etudiant
مكان الاقامة : Tiaret
تاريخ التسجيل : 21/09/2008

مُساهمةموضوع: رد: قواعد البيانات في دلفي : DataBases In Delphi   الجمعة 14 أغسطس 2009 - 20:16





45

_________________




الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://hmfouad.blogspot.com/
La14013
--------------------------
--------------------------


عدد الرسائل : 2
تاريخ التسجيل : 22/09/2008

مُساهمةموضوع: رد: قواعد البيانات في دلفي : DataBases In Delphi   الثلاثاء 25 أكتوبر 2011 - 16:32

والله منتدى رائع وأتشرف بكوني جزائري وموضوع رائع جدا فشكرا للقائمين عليه.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
قواعد البيانات في دلفي : DataBases In Delphi
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات الراشدية :: الكمبيـــــــــــــــــــــــــــوتر :: البرمجــــــــــــــــــــــــــة-
انتقل الى: