بسم الله الرحمن الرحيم
كيفية التعامل مع أكسس في الدلفي .:confused:
أرجوا المساعدة .. وشكراً .
والسلام عليكم ورحة الله وبركاته .
(f)(f)(f)
بسم الله الرحمن الرحيم
كيفية التعامل مع أكسس في الدلفي .:confused:
أرجوا المساعدة .. وشكراً .
والسلام عليكم ورحة الله وبركاته .
(f)(f)(f)
و ياريت تعلموني أنا كيف التعامل مع access في delphi
أخوكم حازم
إذا كنت تقصد كيف يمكن التعامل مع جداول من النوع أكسس في قاعدة بياناتك : فإن ذلك يتم بطريقة عادية مثل أي جدول من نوع اخر
حدد alias مناسب "" عادة يوجد alias خاص بالأكسس واربطه مع الجدول
....
حدد مشكلتك بشكل واضح . وإذا كنت لا تعرف المبادىء الأولية
"" ماذكرتة لك .."" حدد ذلك . وسوف أحاول أن اعطيك رد قريب ..
لقد قمت أنا بطرح هذا السؤال مسبقاً
وأخذت الرد فإليك الحل
هناك عدة طرق لربط قواعد البيانات يوفرها دلفي مثل : BDE, ADO, ODBC، سوف اشرح المثال هذا بإستخدام ADO لعدة أسباب منها: انها التقنية الأحدث والأسرع في الطرق السابقة، بالاضافة الى عدم احتياج البرنامج عن استخدام هذه الطريقة الى ملفات Borland Database Engine وهذا سوف يقلل من حجم البرنامج ويجعل البرنامج يعمل دون الحاجة الى ملفات ربط خاصة، بالاضافة الى دعمها لنسخ اكسس حتى اكسس 2002 او المعروف ب Access XP، لكن حتى تستطيع استخدام هذه التقنية لابد من توفر نسخة دلفي 5 على الاقل وفي هذا المثال سوف استخدم دلفي 5 ولكن يمكن تطبيق نفس الكلام على دلفي 6.
بداية يلزمنا لهذا المثال المبسط استخدام جدولين ADOConnection وهو موجود مع مجموعة مكونات ADO
بعد اضافة المكون الى الفورم نغير خصائصه كالتالي:
ConnectionString: هذه الخاصية خاصة بتحديد قاعدة البيانات المستخدمة وعندما نعلم على هذه الخاصية في Object inspector سوف نشاهد زر صغير بجانبها عند الضغط عليه سوف يفتح لنا نافذة بها Source of Connection ويوجد بها خيارين Use data link file والثاني Use connection string نختار الخيار الثاني ثم نضغط على زر Build سوف تظهر لنا نافذة جديدة اسمها Data Link properties في القسم الاول منها Provider سوف نحدد نوع المزود اللازم لنوع قاعدة البيانات وبما اننا نستخدم اكسس سوف نختار Microsoft jet 4.0 OLE DB Provider ثم نضغط على زر Next
سوف نرى القسم الثاني وهو Connection في صندوق النص الاول نحدد به قاعدة البيانات وسوف اختار قاعدة بيانات تأتي مع دلفي واسمها dbdemos.mdb وتوجد في هذا الدليل
C:Program FilesBorlandBorland SharedDatadbdemos.mdb
هناك مربعين خيارات نضع علامة صح على الاثنين وهما Blank password و allow saving password ثم نضغط على زر Test connection وفي حالة عدم وجود اي مشكلة سوف يعطينا رسالة تفيد ان الاتصال مع القاعدة تم بشكل صحيح
نضغط على زر اوكي في هذه النافذة ثم في النافذة الاخرى ثم علينا تغير خاصية Connected الى True وفي حالة طلبه لكلمة سر اتركها فارغة و اضغط زر اوكي ثم نغير خاصية Login prompet الى False
وهكذا نكون اكملنا الخطوة الاولى وهي عمل اتصال مع قاعدة البيانات
يلزمنا الان جدولين ADOTables وسوف نضيفه من مجموعة مكونات ADO نغير خصائص الجدول الاول حسب التالي
Connection : Adoconnection1
TableName : Customer
Active : True
وخصائص الجدول الثاني
Connection : Adoconnection1
TableName : Orders
Active : True
الان لدينا اتصال مع قاعدة البيانات والجدولين الذين نريد استخدامهم محددين سوف نستخدم DBGrid لعرض البيانات وهي بشكل جدول او Sheet مثل اكسل ويمكن اضافتها من DataContorls
ولكن لا يمكننا ربطها مباشرة مع الجدول وحتى يتم ربط اي مكون من مكونات قواعد البيانات مع مكون الجدول يلزمنا Datasource نضيف اثنين منهم من مجموعة مكونات Data Access ونغير خاصية dataset الخاصة ب DataSource1 الى ADOTable1 وكذلك بالنسبة للثانية نغير خاصية Dataset الى ADOTable2
والان نرجع الى DBGrids ونغير خصاصية Datasource في كل منهم الى التالي
DBGrid1 > Datasource : Datasource1
DBGrid2 > Datasource : Datasource2
وهكذا سوف نشاهد البيانات قد عرضت لدينا ولكن حتى الان لم نحدد العلاقة التي بينهم ولذلك سوف يكونو منفصلين عن بعضهم، ولنحدد علاقة master/detail بينهم نعمل التالي
نعلم على الجدول الثاني ونغير خاصية Mastersource الى Datasource1 ثم الان سوف نحدد الحقل الذي سوف نبني عليه العلاقة من خلال خاصية MasterField وعن الضغط على هذه الخاصية سوف نشاهد نافذة Field Link علينا اختيار حقل CustNo من الجهتين ثم نضغط زر ADD ثم Ok وهكذا نكون قد بنينا علاقة Master/Detail مع بعض لنشغل الان هذا المثال لنخبتر عمله وسوف نشاهد اثناء التشغيل ان في حالة اختيار اي سجل من DBGrid1 سوف نشاهد DBGrid2 يعرض السجلات التي لها علاقة فقط وليس كل بيانات الجدول الثاني
وبهذا نكون انهينا هذا المثال
أرجو ان اكون بسطت لك الطريقة،
عن محمد نسمان
By PLANSHARP
;)
هذا الموضوع مغلق.