الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بعض الأسئلة حول أصدارات مكتبةADO أرجو الإجابة عنها

مغلق
بدأه khaled84m في 6 نوفمبر 2005 · 6 رد · 1,486 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

الأخوة الكرام بعد أن قررت أن أعتمد تقنية ADO في الإتصال بقواعد البيانات ولكن في البداية واجهتني عدة أسئلة أرجو الإجابة عنها كما أرجو أن نشكل مرجع اساسي للمفاهيم الأساسية لهذه التقنية بحسب أصداراتها

أولا عندما أردت إضافة المكتبة وجدت الإصدرارت التالية

1- Microsoft ActiveX Data Objects 2.0 Library

2 - Microsoft ActiveX Data Objects 2.1 Library

3- Microsoft ActiveX Data Objects 2.5 Library

4 - Microsoft ActiveX Data Objects 2.6 Library

5 - Microsoft ActiveX Data Objects 2.7 Library

6 - Microsoft ActiveX Data Objects 2.8 Library

7 - Microsoft ActiveX Data Objects Recordest 2.8 Library

8- Microsoft ADO Ext.2.8 for DDL and Secureity

فما الفرق بين هذه الإصدرات وخاصة رقم 7 و 8

-------

هذه من ناحية وعن التصريح أو عند إنشاء Object للإتصال بقواعد البيانات فقد وجدت

Dim db As New ADODB.Connection

ووجدت مرة أخرى

Dim cat As New ADOX.Catalog

ولاحظت الفرق الكبير للإتصال فما الفرق بين ADODB ، ADO ، ADOX????

وما الفرق بين Connection , Catalog

---

وسؤال اخر حيرني كثيرا

أنني وجدت هذه التصريحات في قسم الجنرال ولم يصرح عنها ب Public ولماذا استخدمنا المعامل New

علما أن لاحاجة له في التقنية DAO

----

واخر سؤال

هل تعتبر ADO هي أحدث تقنية وأفضل للتعامل مع قواعد البيانات مقارنة مع DAO وغيره

أفيدوني جزاكم الله خيرا لأني بأمس الحاجة للإجابة عن هذه الإستفسارات قبل البدء بأي كتابة كود

وشكرا

#2

بسم الله الرحمن الرحيم

الأخوة الكرام

السلام عليكم ورحمة الله وبركاته

بالنسبة للأخ khaled84m

كل هذه إصدارات مختلفة من نفس المكتبة ADO ويفضل ان تستخدم الأصدار 2.8 او 2.7 لانهم احدث إصدارين

والأصدار 2.8 يتم تحميله على الجهاز عندما تقوم بإعداد SQL Server 2000 أو OFFICE XP

وتقوم بتحميل MDAC 2.8 على موقع ميكروسوفت

وباقى الأصدارات القديمة فهى تاتى مع الفيجوال بيسيك عادة

ويفضل بالطبع ان تستخدم أخر اصدار لانه يحتوى على بعض ألأمكانيات والوظائف الجديدة

وبالنسبة للمكتبة ADOX فهذه المكتبة هى الخاصة بعمليات التعديل فى تصميم قاعدة البيانات نفسها

والـ Catalog عبارة عن Object يعطى لك جميع الجداول والأستعلامات الموجودة فى قاعدة البيانات

اما الـ Connection فهى يعطى لك الأتصال بقاعدة البيانات فقط

وإستخدام المعامل New فى الأعلان عن هذه الـ Objects

وأيضا وجود المكتبة ADOX و ADODB

فهذاسببه يرجع إلى عمل الـ ADO والـ DAO

عندما ظهرت الـ DAO كانت عبارة عن مكتبة واحدة تحتوى على كل الأمكانيات الخاصة بالتعامل مع قاعدة البيانات

يعنى كان يوجد فى المكتبة كائنات الأتصال وايضا الأستعلامات وكذلك تعديل تصميم قاعدة البيانات.. ألخ

وكل هذا كان يسبب بطء فى عمل البرنامج نتيجة تحميل هذه المكتبة كاملة فى ذاكرة الجهاز عند تشغيل البرنامج

وهذا كان شىء غير منطقى ... والسبب فى هذا انه نفترض انك تصمم برنامج يقوم بألأتصال بقاعدة البيانات فقط ولايقوم بتعديل اى شىء تصميم قى قاعدة البيانات نفسها ... إذا انت لست محتاج إلى الجزء( الكائنات أو الـ Objects ) الخاص بـ DDL

فلما إذا انت مضطر إلى تحميل المكتبة كلها ؟؟

وايضا لو انك لا تقوم بعمل Replication لقاعدة البيانات الخاصة بالبرنامج فأنت إذا لست محتاج إلى هذا الجزء ايضا

وهنا قررت ميكروسوفت تقسيم هذه المكتبة إلى عدة أجزاء او عدة مكتبات ويقوم المبرمج بإضافة المكتبة إلتى يريدها فقط حسب حاجة العمل فى البرنامج

مثلا المكتبة ADODB

خاصة بالأتصال بقاعدة البيانات والعمل العادى عليها من حفظ السجلات او حذفها ... إلخ مما يسمى DML

المكتبة ADOX

خاصة بالتعديلات فى تصميم قاعدة البيانات مثل إضافة جدول او حقل إلى جدول .. إضافة علاقة بين جدولين .. ألخ

مما يسمى الـ DDL

المكتبة JRO

تحتوى على كائنين فقط هما (JET engine وReplica )

وهذا المكتبة تمكنك من عمل Compact and Repaire لقاعدة البيانات

وايضا عمل نظام الـ Replication لقاعدة البيانات

ملحوظة : - المكتبة JRO تعمل فقط فى حالة ان تكون قاعدة البيانات اكسس فقط

وهذا شرح مختصر للفرق بين الـ ADO والـ DAO

وبالفعل الـ ADO اسرع بكثير من الـ DAO

ولكن من واقع خبرتى الشخصية الـ DAO اقوى بكثر من الـ ADO خاصة عندما يعمل البرنامج على شبكة محلية

فللأسف الـ DAO تعطى إمكانيات اعلى بكثير من الـ ADO خاصة فى موضوع الـ Lock

وعلى فكرة

الـ ADO.NET اصبح الأن اسهل بكثير واصبح يقوم بحل مشكلة عمل البرنامج على شبكة محلية بطريقة سهلة جدا وبدون ادنى تعب من المبرمج ... ولكن ايضا اقول انه هناك بعض العيوب من وجهة نظرى فى الـ ADO.NET

والآن اشرح لك لماذا نستخدم كلمة New عندما نقوم بتعريف اى كائن أو Object من الـ ADO

ولكن يجب ان تعرف اولا فائدة إستخدام كلمة New أساسا فى الفيجوال بيسيك وايضا فى معظم لغات البرمجة

تستخدم كلمة New لعمل نسخة من الـ Object اثناء تعريفه فى خطوة واحدة

وبهذا يمكنك العمل على هذا الـ Object مباشرة

ولكن هذا يعتبر استخدام اعلى فى ذاكرة الجهاز ... ولذا يمكن ان تعلن عن المتغير او الـ Object عادى جدا

سوف تستخدم كلمة Set لعمل نسخة جديدة من الـ Object

لاحظ المثال الأتى

Dim MyObject as New ADODB.Connection
هنا كتبنا خطوتين فى سطر كود واحد حيث قمنا بتعريف متغير 
وايضا عمل نسخة من المتغير فى الذاكرة

ويمكن عمل الكود على سطرين كالأتى 

Dim MyObject as ADODB.Connection
وعند البدء فى استخدام خصائص او وظائف هذا الكائن 
نكتب السطر التالى 
Set MyObject =New  ADODB.Connection
عند هذا السطر يتم عمل نسخة من المتغير فى الذاكرة 

ومن وجهة نظرى الطريقة الثانية افضل 
حيث انها اقل فى إستهلاك ذاكرة الجهاز

ملحوظة :- إستخدام كلمة New أثناء تعريف المتغير له بعض الشروط

حيث انه لايمكن استخدام الكلمة WithEvents مع الكلمة New فى نفس السطر

Dim WithEvents MyObject  as New ADODB.Connection
يعطى خطا

وفى هذه الحالة لابد ان تستخدم الطريقة الثانية

ويكون الكود كالأتى

Dim WithEvents as ADODB.Connection

وبعدها 

Set MyObject =New  ADODB.Connection

لايمكن استخدام كلمة New مع تعريف المتغيرات من أنواع البيانات ألأساسية

مثال

Dim MyInt as New Integer

يعطى خطا

وارجو من الله ان اكون قد وفقت فى توضيح النقاط التى تسأل عنها

والسلام عليكم ورحمة الله وبركاته

#3

الفرق بين adodb و adox

هو ان adodb تتعامل مع قواعد البيانات كما تعرف بالاضافة و الحذف و التعديل و البحث ...... الخ

اما adox فهي لمن لا يعرف لغة ال sql فهي من الممكن ان تقوم بعمل view مثلا

ado لا تعتبر أحدث تقنية لوجود ado.net الا ان ado تعمل بكفاءة في الظروف العادية كما انها أسرع من ado.net لعدم تعدد طبقاتها

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#4

الاخ الكريم NOURHASSANIEN

ألف شكر لك على هذا الرد الجميل والطرح الرائع والشرح البسيط وجزاك الله خيرا

في الحقيقة لقد أزلت الكثير و الكثير من الغموض ولكنني أطمع بعد بالمزيد من كرمك وعلمك

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

كما أنني لم أعلم بعد ماذا يوجد بالمكتبتان

7 - Microsoft ActiveX Data Objects Recordest 2.8 Library

8- Microsoft ADO Ext.2.8 for DDL and Secureity

وهل في الثانية توجد ADOX

أرجو أن تعذرني لكثرة الأسئلة

ولا أملك لك سوى الدعاء

#5

الأخ الكريم romantic_boy

أشكر لك مشاركتك وجزاك الله خيرا ولكنني لم أفهم ما قصدك من .."اما adox فهي لمن لا يعرف لغة ال sql فهي من الممكن ان تقوم بعمل view مثلا "

وشكرا

#6

للرفع

#7

بسم الله الرحمن الرحيم

الأخوة الكرام

السلام عليكم ورحمة الله وبركاته

الأخ khaled84m

المكتبة Microsoft ActiveX Data Objects Recordest 2.8 Library

هى احدت نسخة من الـ ADO.X وهى الجيل السابق للـ ADO.NET الموجودة فى الدوت نت

وكما قلت لك سابقا فهى المكتبة التى تستخدم للأتصال بقاعدة البيانات وإخضار البيانات منها بألأضافة إلى التعديل فى هذه البيانات وتخزين بيانات جديدة ... بمعنى التعامل العادى مع البيانات

ام المكتبة Microsoft ADO Ext.2.8 for DDL and Secureity

فهى الخاصة بإمكانيات تصميم قواعد البيانات نفسها

مثلا .,.. إنشاء جدوال فى قاعدة البيانات إنشاء حقول ... إنشاء إستعلامات ... حيث يمكنك إنشاء قاعدة بيانات كاملة بالكود دون إستخدام ألأكسس

ملحوظة :- معظم إمكانيات هذه المكتبة متاحة فقط فى حالة الأكسس

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

إستخدم المكتبة Microsoft ADO Ext.2.8 for DDL and Secureity

اقتباس
واستعلامات وبحث

Microsoft ActiveX Data Objects Recordest 2.8 Library

بمعنى انك سوف تحتاج إلى إضافة المكتبتين

ملحوظة :- عند إضافة المكتبة Microsoft ActiveX Data Objects Recordest 2.8 Library فانه يرمز لها فى المشروع بألأسم ADODB

والمكتبة Microsoft ADO Ext.2.8 for DDL and Secureity يرمز لها بألأسم ADOX

ولذا إشتهرت بالأسم ADOX

فعند تعريف متغير من النوع Catalogمن المكتبة Microsoft ADO Ext.2.8 for DDL and Secureity

فيكون الكود كالتالى

Dim XCat as New ADOX.Catalog

ملحوظة:- الـ Object Catalog يحتوى على التصميم الكامل لقاعدة البيانات وهو الذى مثلا يمكنك ان تنشى قاعدة بيانات جديدة عن طريق الكود

وارجو من الله ان اكون قد وفقت فى توضيح النقاط التى تسأل عنها

والسلام عليكم ورحمة الله وبركاته

هذا الموضوع مغلق.

مواضيع مشابهة