المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ملئ قاعدة البيانات انطلاقا من واجهة Delphi


houssem3110
17-05-2008, 09:40 PM
السلام عليكم
كيف استطيع إلحاق قيم بالحقول (لقد تم انشاء قاعدة البيانات وهي تحتوي علي حقلين nom utilisateur و code )مباشرة من delphi بالستعمال table1 و datasource1 و زر و edit او dbedit .

أمير الدلفي
18-05-2008, 10:50 AM
يا أخي وضح سؤالك أكثر
و أي محرك قاعدة بيانات عندك bdo أم ado

المهم سأجيبك على السؤال على حد فهمي

اذا أنشأت قاعدة بيانات في paradox
ضع على الفورم كل من table و datasource و dbnavigater و edit على وجه سؤالك
و أربط table بقاعدة البيانات واربط datasource ,dbnavigater بالجدول

أما عن الحاق القيم الى الجدول بطريقة edit وأنت عندك في مثالك حقلين nom utilisateur و code
اجعل مع edit الأول والثاني button
واضغط على البوتون واكتب الكود التالي
Table1.insert;
table1.edit;
tabl1nomutilisateur.text := edit1.text;
tabl1code.value := edit1.text;
table1.post;
ومن هنا تجد أن القيم أدخلت في الجدول وان واجهتك مشكلة أنك عندما تطفئ الجهاز تجد أن البيانات لم تبقى في الجدول فأضف الكود التالي الى آخر التعليمات :
table1.FlushBuffers;

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

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


***** أني أفدتك أخي وأي خروج عن قصدك ومرامك فصلك سؤالك قليلا
بالتوفيق أخي

B.M.AbdelAziZ
18-05-2008, 11:13 AM
Table1.insert;
table1.edit;

خطأ - عندما تستدعى Insert فلا معنى لاستدعاء Edit لانك أضفت سجل جديد

tabl1nomutilisateur.text := edit1.text;
tabl1code.value := edit1.text;

خطأ - طريقة كتابة اسم الحقل ملتصق باسم الجدول لا تكون معرفة الا بعد الضغط مرتين على المكون Table1 واضافة كل الحقول


table1.FlushBuffers;

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

أمير الدلفي
18-05-2008, 11:24 AM
شكرا جزيلا أستاذ
أقدر لك تصحيحاتك المقدمة :confused: وبالفعل سأفعل اشتراكي في المنتدى حتى تقتل كل أخطائي :D
شكرا مرة أخرى

B.M.AbdelAziZ
18-05-2008, 11:37 AM
(لقد تم انشاء قاعدة البيانات وهي تحتوي علي حقلين nom utilisateur و code )مباشرة من delphi بالستعمال table1 و datasource1 و زر و edit او dbedit .

من الاحسن عدم استخدام فراغ او حروف خاصة في اسماء الحقول
بدلا من "nom utilisateur" يسمى الحقل nomutilisateur او nom_utilisateur أوحتى nom فقط
-
من الوصف لدينا جدول فرضا اسمه utilisateur وان كان Paradox فاسم الملف يكون utilisateur.db وان كان ديك دليل فريد Index يكون لدينا ملف ثاني اسمه utilisateur.Px
يحتوي حقلين code و nom وفرضا nom نصي طوله 30 و Code ايضا نصي طوله 8 مثلا

المكونات كما قال السائل Table1 و Datasource1

وزر ! طبعا زر واحد غير كافي يلزمك على الأقل زرين

edit او Dbedit هنا علينا الخيار
سواء نختار DBedit ونختصر الكثير من الكود وليس بالضرورة احين طريقة
سواء نستخدم Edit وكتب الكثير من الكود مقارة مع استخدامنا ل DbEdit

-
نبد بخصائص المكونات
Table1
نستخدم او نغير خاصيتين فقط هما
DataBaseName و TableName

DataBaseName لدينا 4 خيارات او 4 طرق
1- نكتب بها مسار قواعد البيانات اي المكان الموجود به الجدول utilisateur.db مثلا C:\houssem3110 ان كانت موجة في القرص الصلب C: داخل مجلد اسمه Houcem3110
2- نختار Alias من بين القائمة التي تظهر عند الضغط على الزر الصغير يمين الخاصية DataBaseName ، طبعا يجب ان نكون أنشأنا Alias من قبل وتسميته و به مسار القاعدة التي نستخدمها
3- نتركها فارغة ول انكتب شي في حالة كان الجدول موجود في نفس المكان مع مشروع دلفي
4- نركها فارعة ونغيرها برمجيا عتد تنفيذ البرنامج

الخاصية TableName تختار منها اسم الجدول utilisateur.db ويجب ان يظهر بالقائمة تلقائوان لم يظهر هناك خلل او خطأ في DataBaseName

الان المكون DataSource1 نغير به خاصية واحدة فقط هي DataSet نختار منها اسم مكزن الجدول Table1 من القائمة

الان البقية تختلف حسب خيارنا استعمال Edit او DBEdit وساكمل بعد ان يختار السائل واحد :D

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

houssem3110
18-05-2008, 12:45 PM
شكرا لك اخي أمكروس أمبارش علي محاولتك الاجابة علي سؤالي...
شكرا جزيلا اخي delata aziz علي اجاباتك المفيدة لي في جميع الاسئلة التي قمت بطرحها...فيما يخص اختيار edit او dbedit المهم لدي ان الشيء الذي اكتبه سواء كان في edit او dbedit يسجل في قاعدة البيانات...وان كانت dbedit اسهل فأني اختارها.
ملاحضة(سؤال اخر): كيف استطيع منع مستخدم برنامجي من استخدامه الا بعد التسجيل في قاعدة البيانات السابقة(inscription.db التي تحتوي علي الحقلين nom_utilisateur و code ).

أمير الدلفي
18-05-2008, 01:18 PM
نعم أسعدني جدا التفاعل في الموضوع
فقد استفدت كثيرا شكرا شكرا ... يا أخ عبد العزيز

بالتوفيق

B.M.AbdelAziZ
19-05-2008, 08:50 AM
بما انك اخترت DBedit فتربطه مع DataSource1 بتغيير الخاصية DataSource
وتختار الحقل بتغيير الخاصية DataField

ثم نظيف ازرار، مثال سريع مرفق، اي سؤال لا تتردد
والسلام عليكم ورحمة الله

محمد كريم
31-01-2009, 11:00 AM
اخى العزيز
اولا تقوم بوضع ado table ; datasource على الفورم التى تحتوى على المكونات والتى من خلالها تقوم بكتابة البيانات التى تريد ادخالها ولنفرض مثلا انك وضعت على الفورم edit ومعه زر حفظ
عند الضغط على الزر حفظ قم بكتابة الكود التالى

ADOTABLE1.EDIT
adoTable1.FieldByName('Name').value:= edit.Text
adotable1.post

panchho1
15-04-2010, 08:18 AM
شكرا علي الشرح اخي انا ايضا استفدت