delphi4arab منتديات دلفي للعرب

نسخة كاملة : تغيير تسجيل محدد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام  عليكم

لدي form1 به جدول  للفئات (رقم الفئة، اسم الفئة)
ال  form 2 به  جدول العمال  (رقم،اللقب والاسم، الفئة)

لنفرض انني قت بملأ معلومات  200 عامل لكن  طرأ  تغيير  في اسم احدى الفئات ل 60 عاملا
المطلوب عند تغيير اسم الفئة في form1 تتغير تلقائيا في form2  مع الإبقاء على أسماء الفئات الأخرى كما هي

جربت هذا الكود لكنه يقوم بتغيير الكل

كود :
procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction); begin dm.BenefisTable.DisableControls; try   dm.BenefisTable.First;   while not dm.BenefisTable.Eof do   begin     dm.BenefisTable.Edit;     dm.BenefisTable.FieldByName('categ').Value := dbedit2.Text;     dm.BenefisTable.Post;     dm.BenefisTable.Next;   end; finally     dm.BenefisTable.EnableControls; end; end; end.
لزم وضع شرط في منتصف الحلقة قبل السطر هذا
dm.BenefisTable.Edit;
من المفروض هذا الشرط هو الشئ الذي يجمع 60 عامل معا
كيف يتم ذلك
إذا كان لمجموع الـ60 عامل نفس الفئة و بإستخدام قواعد التكامل المرجعي في قاعدة البيانات فإنه بمجرد تغيير تسمية الفئة و التي تحمل مفتاح أساسيا يتم وضعه عند إضافة كل عامل لهذه الفئة كمفتاح أجنبي.
(09-08-2021, 12:09 PM)appakar كتب : [ -> ]كيف يتم ذلك

عطيني الشي المشترك بين 60 عامل الذي تتحدتم عليهم وسوف أقول لك كيف
(10-08-2021, 12:45 AM)delphi17 كتب : [ -> ]
(09-08-2021, 12:09 PM)appakar كتب : [ -> ]كيف يتم ذلك

عطيني الشي المشترك بين 60 عامل الذي تتحدتم عليهم وسوف أقول لك كيف

هو أعطاك ، أي الفيئة القديمة لـ dm.BenefisTable.FieldByName('categ').Value يغيرها لها برقم الفيئة الجديدة

* الحل قبل التعديل ، نقوم بفلترة القيمة القديمة و بعدها التعديل على الفيئة حسب المثال الذي لديك ، الذي يعدل على الكل اذا قمت بالفلترة قبل التعديل ، سيعدل على السجلات الظاهر فقط
*  أو عن طريق أوامر sql  عن طريق update بواسطة شرط الفيئة القديمة ، هي الاسهل و الاسرع
* الطريقة الاخيرة إضافة شرط الى المثال الذي لديك ي، فحص اذا كانت تساوي قيمة الفيئة القديمة يغير

+ افضل حل و هو الثاني التغيير بكبسة زر  ، اما  الاول و الثالث تكون عملية بطيئة لانه يمررها سطر بسطر
سلام عليكم


إقتباس :لدي form1 به جدول  للفئات (رقم الفئة، اسم الفئة)
ال  form 2 به  جدول العمال  (رقم،اللقب والاسم، الفئة)

من المفترض الفورم 2 يكون هكذا :
رقم ، اللقب و الاسم ، رقم الفئة وليس الفئة 

بمعنى : نوع الحقل عددي وهو مفتاح اساسي للجدول الاب1 .

1- عن طريق SQL 
يمكنك التحكم في كل شيئ سواء عمل insert / update ... /delete
او الربط البرمجي join ...

2-من خلال التصميم
وضع علاقة بين الجدولين (اب لابن) 

مثال (اكسس) 

[صورة: cascadeon.gif]
الإخوة الأفاضل
ممكن الطريقة عن طريق SQL
ماهو نوع الحقل (الفئة) في الجدول 2 .
نوع الحقل (الفئة) في الجدول 2 ""TEXT""
الصفحات : 1 2