منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مثال لاضافة وتعديل وحذف البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
هو مثال بسيط لاعطاكم فكرة

على قواعد بيانات Access ولو انني لا احبد حتى الامثلة عليها

صورة للمثال ورابط للتحميل بالمشاركة



[attachment=21679]

[attachment=21678]

نسيت عند فتح المشروع لا تنسى تغيير مسار قاعدة البيانات من مكون الاتصال على النموذج

طبعا يسمح لك الدلفي باختيار مظهر خاص من القائمة Project أختر Option ستجد Appearance اختر منها ما يناسبك
وسوف تجد زر Preview للمعاينة قبل التأكيد

[attachment=21682]


[attachment=21681]


[attachment=21680]

لتغيير مسار قاعدة البيانات انقر على مكون الاتصال بزر الفأرة الايمن كما بالصورة واختر EditConnectionString

[attachment=21683]

ستظهر لك قائمة أختر Build

بعدها من Databasename اختر قاعدة البيانات

[attachment=21684]
ما شاء الله 
طيب اخوي في عندي سؤال صغير لو سمحت 
كيف ممكن نعمل اتصال مباشر بالداتا بيس من خلال الكود 
اقصد موديل نكتب فيه فنكشين للاتصال مباشرة على اعتبار ان قاعدة البيانات في مجلد المشروع app.path في هيك شي بالدلفي ؟ 
سامحني على السؤال اذا كان كان فيه اي مخالفة او ان الدلفي لا تدعم ذلك .
إقتباس :او ان الدلفي لا تدعم ذلك


لايوجد شئ لا يمكن للدلفي ان تفعله بالاحرى انت تكتشف اشياء في الدلفي لا تستطيع ربما فعلها في البرامج الاخرى

يمكنك في حدث التحميل للنموذج بالنقر عليه مرتين ان تكتب التالي :

كود :
procedure TForm1.FormCreate(Sender: TObject);
var
str:string;
begin
str:=ExtractFileDir(Application.ExeName) + '\db.mdb'  ;
ADOConnection1.Close;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=' + str;
ADOConnection1.Connected:=true;
ADOTable1.Open;
end;

لاحظ عرفنا متغير Str كمتغير نصي ثم وضعنا فيه مسار مجلد البرنامج


كود :
ExtractFileDir(Application.ExeName)

حيث 

كود :
Application.ExeName

هو الملف التنفيذي لبرنامجك

ثم اسندناه لجملة الاتصال وفتحتنا الاتصال وكذلك فتحنا اتصال الجدول

حيث Adotabl1 هو المسؤول بالاتصال بالجدول Test1 بقاعدة البيانات
قد يتسائل البعض كيف ربطناه بالجدول 
العملية تمت من نافذة الخصائص ولم تتم برمجيا
لتتم برمجيا يمكنك ذلك بالطريقة التالية .


كود :
ADOTable1.TableName='Test1';

لفهم مكونات الاتصال وهي متشابهة كلها لها نفس الاسلوب سواء كانت اكسس او بارادوكس او اس كيو السيرفر او غيرها

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

[attachment=21685]


بعدها لدينا مكون الجدول وهو المسؤول عن الاتصال بالجداول ولاحظ يجب ربطه بمكون الاتصال وكذلك تحديد الجدول المراد الاتصال به وكله بشكل مرئي او بالكود
ويظهر الخصائص الاخرى له والبارمترات التي تتبعه وسوف تظهر لك كل الجداول عن النقر عليها لتختار الجدول الذي تريد

[attachment=21686]


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

[attachment=21687]

الدتا جريد او الداتا كنترول كلها تتصل بالداتاسورس انظر للصورة

[attachment=21688]

وبعد الربط تنقر على الداتا جريد لمزيد من الحكم في طول وعرض الصفوف والاعمدة
جزاك الله خير
عظيم جداً 
يسلمو ايديك
ممككن كود البحث عن الاسم .
في بعض الداتا كنترول تحتاج الى تعريف خاصيتين
ماهي الداتاسورس وباي حقل تريد ان تربطها انظر للصورة

[attachment=21689]

لاحظ ان الداتاكنترول تقوم بالكثير من العمل عنك فمثلا في الحقل Price وهو من نوع Integer لن تدعك تكتب اي حروف او رمور الا الارقام فقط بدون اي تدخل برمجي
اكثر من رائع اخى viv
باشر ولا تتوقف 

فكل التحية والتقدير لك
واعانك الله على ما انت عليه

تحياتى لك
وتمنياتى لك التوفيق
البحث بسيط جدا  اولا ضع مثلا اداة Edit من الحاوية Standerd لاحظ ان هناك ادوات في الحاوية مهمتها الربط مع مصادر البيانات تختلف عن هذه
هذه لا تعرض البيانات الا بطريقة الكود فقط وسوف نتطرق لها يوما

انظر للصورة

[attachment=21690]

كما تلاحظ اداة الجدول لها خاصيتين خاصية 
هل نفعل عملية الفلترة ام لا وبحال كانت لا ، فحتى لو كانت خاصية جملة الفلترة مملؤة بنص لن تحدث الفلترة

[attachment=21692]

ضع الاداة تم انقر عليها مرتين لتنتقل الى الحدث OnChange اي اذا حدث تغيير في الاداة وهناك اكتب التالي :

كود :
if Edit1.Text ='' then
ADOTable1.Filtered:=false
else
begin
ADOTable1.Filter:='mname LIKE ' + QuotedStr(Edit1.Text + '*');
ADOTable1.Filtered:=true;
end;

نقول هنا اذا كانت الاداة لاتحتوي على شئ الغي عملية الفلترة واظهر كل البيانات
والا فابحث عن النص الذي يبداء بالحروف وتتحكم فيه Like وكلكم تعرفون طبعا شروط البحث باستخدام مفاتيح معينة مثل النجمة وغيرها
وفلعنا خاصية البحث فيتم البحث
لاحظ لو بحتث عن حرف L  ولديك اسمه في قاعدة البيانات باسم Laptop  فلن تحصل على شئ لان هناك مسافة قبل حرف L  احذفها وجرب من جديد

لاحظ نتيجة البحث هنا

[attachment=21691]
مشكور جدا تمت التجربة .
أنتبهوا لانني ازيد في المناشير السابقة عندما اتذكر شيئا ما
فكل من فاته شئ يمكنه مراجعة المنشور مرة اخرى لانني اعدل فيه

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

[attachment=21693]

حيث احيانا تحتاج الى انهاء الجملة بعبارة Begin وايضا End واحيانا لا على العموم الامر بسيط وسوف نشرحه لاحقا بدرس لوحده
بحيث ايضا يكون من الضروري استخدام الفاصلة المنقوطة بنهاية الجملة واحيانا سوف ترفضها

ايضا نحتاج ان نتقدم خطوة وهي اظهار رسالة موافقة على الحذف

كود :
if MessageDlg('هل تريد حذف الملف',mtWarning,[mbOK, mbCancel],0) =mrOk then
begin
 ADOTable1.Delete;
 ShowMessage('تم حذف الملف بنجاح')
end;

نوع الرسالة يمكنك استخدام اي من هذه
mtWarning, mtError, mtInformation, mtConfirmation

الازرار يمكنك استخدام اي من هذه
mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose
الصفحات : 1 2