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

نسخة كاملة : مشكلة تواجهني في هذا الكود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله تعالى وبركاته
اخواني اساتذتي الكرام
عندما يكون حقل معين فارغ في عدة السجلات استعملت هذا الكود لحدفهم جميعا
لكن الحدف يتم بالضغط عدة مرات على الزر الموجود به الكود حتى يتم حدفهم جميعا
اي كل ضغطة يحزف سجل او سجلين
والمطلوب حدفهم دفعة واحدة
كيف يكون ذالك
الكود المستعمل حاليا هو :
كود :
    DM.Table1.Open;     DM.Table1.DisableControls;     DM.Table1.First;     while not  DM.Table1.Eof do     begin       If DM.Table1Mnt.Value<=0 then DM.Table1.delete;       DM.Table1.Next;     end;     DM.Table1.EnableControls;
في عملية الشرط، أنت لم تبين اسم الحقل .... أكتب إسم الحقل المعني
(22-05-2021, 07:37 PM)takaya5 كتب : [ -> ]في عملية الشرط، أنت لم تبين اسم الحقل .... أكتب إسم الحقل المعني

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

في الحقيقة هو وضع الشرط
كود :
DM.Table1Mnt.Value<=0

الطريقة التي تعمل بها كلاسيكية اعمل بـ sql في لمحة تحذف كل شيء بالسرعة

ما عليك سوى إضافة Table Query إلى نافذة DataModule التي تسميها DM و ربطها مع قاعدة البيانات

* هنا سأضع مثال اسم الجدول في قاعدة هو pay  والحقل هو Mnt
* اما المكون  Table_Query الموجود في DM

كود :
with DM.Table_Query do begin sql.clear; sql.add('DELETE FROM pay '); sql.add('where Mnt <= 0'); ExecSQL; end; DM.Table1.Refresh;
وعليكم السلام ورحمة الله تعالى وبركاته

عدل كما يلي

كود :
If (DM.Table1Mnt.Value<=0) then DM.Table1.delete else DM.Table1.Next;
وعليكم السلام

جرب هذا   
كود :
DM.Table1.First; repeat       If DM.Table1Mnt.Value<=0 then DM.Table1.delete;       DM.Table1.Next; until DM.Table1.EOF
السلام عليكم
احسن طريقة هي استعمال الفترة
وشكرا.