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

ربط قاعدة بيانات مع الاكسس مع توضيح

مغلق
بدأه عنيزة في 6 أكتوبر 2001 · 5 رد · 8,566 مشاهدة · في أرشيف منتدى الدلفي
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد توضيح بمثال بسيط مع العمليات الاساسية علية كالاضافة والحذف والتعديل على ريكورد

#2

نقلا عن موضوع موجود في صفحة ملتقى المبرمجين العرب

الاتصال باكسس عن طريق ال (ODBC)

توفر لك هذه الطريقة الاتصال بقواعد بيانات أكسس بجميع اصداراتها 95،97،200 وما يليها ولكي تربط برنامجك بقاعدة بيانات أكسس عن طريق ال ODBC هناك طريقتان يدوية وبرمجية :

اولا الربط اليدوي

اذهب الى لوحة التحكم Control Panel.

اختر ODBC Data Sources 32 .

بعد ان تظهر لك شاشة ODBC DAta Source Administrator المبوبة اختر منها الباب Sytem DSN.

من خلال الباب System DSN اختر اضافة.

من خلال الشاشة التي سوف تظهر لك تحت عنوان Creat New Data Source اختر Microsoft Access Driver .

من خلال الشاشة التي سوف تظهر لك تحت مسمى ODBC Microsoft Access Setup ادخل في مربع الاسم Data Source Name اسم Alias Name الذي ترغب في التعامل مع قاعدة بيانات أكسس من خلاله . أما مربع الوصف Description فهو اختياري وبامكانك تركه فارغا.

اختر الأمر Select.. وسوف يظهر لك بعدها صندوق الحوار الخاص بالملفات والذي سوف تختار من خلاله قاعدة البيانات التي ترغب في ربطها ببرنامجك.

اغلق لوحة التحكم .

شغل برنامج BDE Administrator المرفق بالدلفي وستفاجأ بأن اسم قاعدة البيانات المستعار Alias Name الذي حددته لقاعدة بيانات أكسس أصبح من ضمن قائمة الأسماء .

هنا أصبح لديك Alias Name متصلا بقاعدة بيانات أكسس تستسطيع من خلاله ربط برنامجك بها وكأنك تعمل على قاعدة بيانات برادوكس تماما .

ثانيا الربط برمجيا

من عيوب طريقة الربط اليدوي أن المستخدم النهائي للبرنامج لابد أن يكون لديه الماما بالطريقة التي شرحت سابقا لكي يتمكن من انشاء اسما مستعار Alias NAmeا لقاعدة بيانات أكسس والبديل الأمثل أن يقوم المبرمج بانشائه برمجيا نيابة عن المستخدم وذلك لتفاوت قدرات المستخدمين في التعامل مع مثل هذه الأمور وهذه خطوات انشاء ال Alias Name برمجيا :

لابد أن يكون المبرمج ملما بألية عمل Windows Regstrey

أمل دراسة المثال المرفق للتعرف على كيفية تعامل دللفي مع ال Windows Regstrey.

أن توضع الشفرة المرفقة عند انشاء On Creat الشاشة الأولى من البرنامج وذلك لضمان انشاء Alias Name قبل محاولة البرنامج التعامل مع قاعدة البيانات أكسس .

تم في هذا المثال اختيار اسما مستعارا لقاعدة البيانات هو NoteBook

قاعدة البيانت التي سوف يتعامل معه البرنامج هي NoteBook.MDB

لابد أن يتعرف المبرمج على المسار الذي يحتوي على مجلد ال Windows

لابد أن يتعرف المبرمج على المسار الذي يحتوي على المجلد Sytem الذي يقع تحت ال Windows وذلك لاحتوائه على مكتبة الربط الديناميكي Odbcjt32.dll

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

المثال

procedure TForm1.FormCreate(Sender: TObject);

var myregistry : Tregistry ;

windir : String;

begin

myregistry := tregistry.Create ;

myregistry.RootKey := HKEY_LOCAL_MACHINE ;

if myregistry.OpenKey('SoftwareODBCODBC.ININoteBook' , true) then

begin

getwindowsdirectory(windir,144) ;

winsyspath := windir + 'SystemOdbcjt32.dll' ;

myregistry.WriteString('DBQ',extractfilepath(application.exename) + 'NoteBook.mdb');

myregistry.WriteString('Driver',winsyspath);

myregistry.WriteInteger('DriverId',25);

myregistry.WriteString('FIL','Ms Access;') ;

myregistry.WriteInteger('Safe Transactions',0);

myregistry.WriteString('UID','');

myregistry.CloseKey;

myregistry.Free ;

winsyspath := '' ;

end;

end;

وشكرا

#3

وهد ايضا عن نفس الموضوع من نفس الموقع

اكسس تحت الدلفي

تستطيع أن تسيطر على أكسس بجميع إصداراتها سيطرة تامة من خلال لغة البرمجة دلفي وخاصة في الاصدار الخامس منها وذلك بفضل ما وفرته Delphi من أدوات تحكم واتصال بالأكسس ومن أدوات التحكم هذه :

(BDE) Borland Database Engine.

(ODBC) Open Database Connectivity

(ADO) ActivX Data Object.

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

الطريقة الأولى

الوصول الى قاعدة البيانات أكسس من خلال BDE وهذه الطريقة مشابهة تماما للوصول الى قاعدة بيانات باردوكس من خلال ALIAS NAME يقوم بإنشائه المستخدم مشيرا الى نوع قاعدة البيانات وموقعها . فلكي تستطيع استخدام قاعدة بيانات أكسس اسمها PHONEBOOK مثلا فما عليك الا اتباع الخطوات التالية:

شغل BDE من خلال قائمة البرامج وهو محرك بورلاند المستخدم في ادارة قواعد البيانات المختلفة.

اختر الأمر NEW من القائمة Object وذلك لانشاء اسما مستعارا يشير الى مكان قاعدة بيانات أكسس والتي أفترضنا أن اسمها PHONEBOOK.

سوف يظهر لنا قائمة قواعد البيانات المختلفة ووضعها الأساسي هو STANDARD وتشير الى BARADOX بطبيعة الحال فنختار منها MSACCESS وهذا هو الخيار المنشود وهو يختلف تماما عن خيار يليه يسمى Microsoft Access Driver (*.mdb) والذي سوف نأتي على شرحه لاحقا عندما نتعرض لل ODBC.

بعد ذلك سوف يظهر لنا في القائمة ALIAS NAME جديدا تحت اسم MSACCESS1 وهذا الاسم الافتراضي سوف يشير الى قاعدة بيانات اكسس التي سوف نحدد مكانها في الخطوة التالية ويمكننا تغييره اذا رغبنا الى أي اسم أخر مثل MSNOTEBOOK.

يظهر لنا في الجزء الأيمن من الشاشة معلومات حول خصائص الاسم المستعار هذا منها Type وتعني به نوع قاعدة البيانات الذي يشير اليها الاسم المستعار وهي هنا تساوي MSACCESS ثم يأتي بعده DATABASE ANME وأمامها المعلومات التالية DRIVE:/PATH/DATABASE.MDB وأهم ما يتطلب منا عمله الآن هو تغيير هذه الملومة وذلك بكتابة مكان تواجد قاعدة بيانات أكسس التي نريد استخدامها وذلك من خلال كتابة المسار مباشرة مثل C:PHONEBOOK أو نبحث عنها من خلال النقر على الزر الذي يقع ملاصقة للعبارة السابقة من الناحية اليمنى.

أما بقية الخيارات فنتركها على ماهي عليه ولا تحتاج منا تعريفها.

يبقى الخطوة الضرورية والحاسمة والتي قد تزعج الكثير من المبرمجين حيث أنه ينجح في الأتصال بقاعدة بيانات أكسس من خلال جهازه ولكنه يتفاجأ بأنها لاتعمل عند نقل برنامجه الى جهاز أخر وأن نظام التشغيل يطلب منه بعض مكتبات DLL وحتى عند توفيرها فبرنامجه أيضا يفشل في الاتصال والسبب في ذلك يرجع الى عدم اختيار DLL المناسب لقاعدة بياناته حيث أن DLL الخاص بأكسس 95 لا يستطيع تشغيل 97 أو 2000 وهو ياتي مع ال BDE متوافقا مع أكسس 95 كخيار أساسي ولضبطه اتبع الخطوات التالية:

لو دققت النظر في الجزء الأيسر من شاشة BDE لوجدته يتكون من جزئين رئيسيين وهما DATABASES والأخر CONFIGRATION.

فلكي تتصل بقاعدة بيانات أكسس 95 خاص بها انتقل الى الجزء CONFIGRATION ثم أنقر على DRAIVERES ثم أختر NATIVE ومن المجموعة اختر MSACCESS وبعد اختيارك لهذا الخيار تجد أنه فتح في الجانب الأيمن قائمة وأن الخيار الثني فيها هو DLL32 وأمامه القيمة IDDAO32.DLL وهذه المكتبة خاصة بتشغيل أكسس 95.

أما اذا اردنا التعامل مع أكسس 97 فيجب تغيير القيمة الى IDDA3532.DLL وذلك لان هناك نسختين احداها تتعامل مع محرك مايكروسوفت JET3 والأخرى مع المحرك JET3.5 وهذين المحركين سوف يأتيان لاحقا عند شرح الاتصال من خلال ADO.

والطريقة السابق شرحها هي عن كيفية الاتصال بالاكسس من خلال BDE وهو الأفضل والأسرع ولكنه للأسف لن ينهي متاعبنا مع الأكسس التي تأتي باصدارات متتالية لاتتوافق مع نفسها أولا ولا مع لغات تطوير مايكروسوفت نفسها مثل الفيجول بيسك مما يجعل طريقتنا هذه عاجزة أمام الاتصال بقاعدة بيانات أكسس 2000 والتي سوف نأتي على شرح طريقة الاتصال بها في الموضوع اللاحق وذلك من خلال ال ِADO أو ODBC ..... والله ولي التوفيق.

وشكرا

#4

شكرا لهذا التوضيح وارجو ان يستفيد منه اكبر عدد ممكن

فهذا الموقع يعد من افضل المواقع لخدمة المبرمجين العرب

#5

شكرا لك على هذا المجهود يا madi

هل بالإمكان شرح طريقة ADO أيضا

#6

لا شكر على واجب ,

نقلا عن ما كتب فى ملتقى المبرمجين العرب .

الاتصال بالاكسس عن طريق ADO

يفضل بعض المبرمجين التعامل مع الأكسس عن طريق ADO الا أن هناك مشكلة قد تصادف البعض وهي اختلاف اصدارات الأكسس التي يتعامل معها وذلك لان المبرمج يتعامل مع محرك قواعد البيانات JET XX من خلال ال ADO والمحرك JET تختلف اصداراته باختلاف اصدارات أكسس .فمثلا أكس 95 تتعامل مع JET3.0 بينما أكسس 97 تتعامل مع JET3.5 أما أكسس 2000 فتتعمل مع JET4.0 ومع هذا فالمبرمج يستطيع التعرف على اصدار الأكس المثبت على جهاز المستخدم كما أنه يستطيع تحديد طريقة الاتصال كما سبق عند شرح الاتصال عن طريق ال ODBC يدويا أو برمجيا أثناء التنفيذ Run Time.

مثال على ربط قاعدة بيانات أكسس مع الدلفي :

شغل برنامج الدلفي .

افتح مشروعا جديدا.

اختر ADO من قائمة مكونات الدلفي ال VCL ثم اختر المكون ADO Table وأسقطه على شاشة البرنامج وهو مشابه تماما للمكون Table الذي تتعامل معه باستمرار مع قواعد بيانات برادوكس عدا بعض الاختلافات البسيطة .

اذهب الى خصائص ال ADO Table .

اختر الخاصية ConectionString وسوف يظهر لك شاشة أخرى اختر منها الأمر Build.

تظهر لك شاشة أخرى أختر منها محرك قاعدة بيانات أكسس وسوف يكون على أحد الأشكال التالية :

أكسس 2000 Microsoft Jet 4.0 OLE DB Provider.

أكسس 97 Microsoft Jet 3.5 OLE DB Provide.

أكسس 95 Microsoft Jet 3.0 OLE DB Provide.

اختر الأمر NEXT تنتقل الى الباب Conection.

اختر الأمر Select or enter DataBase name. ثم حدد مكان قاعدة بيانات أكسس التي ترغب في ربطها ببرنامجك .

ختر OK لتجد نفسك في شاشة برنامجك الرئيسية ومن ضمن خصائص ال ADO Table حدد الملف الذي سوف تتعامل معه وذلك باختياره من الخاصية Table Name.

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

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