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

نسخة كاملة : هل من طريقة لافراغ جدول من المعلومات دون اللجوء الى while not table1.eof do
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم و رحمة الله و بركاته.

هل من طريقة لافراغ جدول من المعلومات دون اللجوء الى while not table1.eof do
مع العلم اني جربت deleterecords لكنها لم تنجح.

السلام عليكم و رحمة الله و بركاته.
وعليكم السلام
نعم يمكنك ذلك وبدون استخدام while not table1.eof do
كود :
table1.Active:= false; table1.EmptyTable;

تحياتي لك
مشكور أخي لكن نسيت أن أقول ان التقنية المستعملة هي ado وليس bde.
لان ado لا يعتمد على الاجراء EmptyTable
على ما اعتقد انه صالح حتى مع تقنية ado جرب ان شئت
لقد جربت لكن لا يوجد هذا الاجراء أو الدالة
كنت أود تنفيذها في سطر واحد لكن الان كتبتها هكذا

while not Facture_Achat.isempty do
Facture_Achat.delete;
شكرا أخي فريد
السلام عليكم...

استعمل ADOQuery أو ADOCommand لتنفيذ جملة SQL التالية:

كود :
DELETE FROM table_name

حيث table_name اسم الجدول في قاعدة البيانات.

مثلاً:
كود :
Facture_Achat.Close; ADOQuery1.Close; ADOQuery1.SQL.Text := 'DELETE FROM table_name'; ADOQuery1.ExecSQL; Facture_Achat.Open;

أو باستعمال الـ ADOCommand :
كود :
Facture_Achat.Close; ADOCommand1.CommandText := 'DELETE FROM table_name'; ADOCommand1.Execute; Facture_Achat.Open;

نرجو الاستفادة و السلام.
أنا كتبتها في سطرين و أنت في أربع و لكن فكرتك تعتمد على الـ sql
فأيهما أفضل؟
شكرا
السلام عليكم...
كود :
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin ADOTable1.First; for i:=1 to ADOTable1.RecordCount do ADOTable1.Delete; end;
السلام عليكم...

cosinuszero كتب :أنا كتبتها في سطرين و أنت في أربع و لكن فكرتك تعتمد على الـ sql
فأيهما أفضل؟
شكرا

:p المسألة ليست هكذا...
أولاً: في الكود الذي ذكرته أنا هناك سطران فقط لهما علاقة بالحذف، أما إغلاق و فتح الجدول فهو للتحديث.
ثانياً: تلك الأربعة أسطر سيتم تنفيذها مرة واحدة فقط مهما كان عدد السجلات في الجدول، أما حلقة For أو While فتصور كم سيتكرر تنفيذها إذا كان الجدول يحتوي على آلاف أو ربما ملايين السجلات. سيكون الأمر بطيئاً جداً و ربما مع توقف البرنامج عن الاستجابة إلى حين انتهاء الحلقة.

نرجو الاستفادة و السلام.
najy ibraheem كتب :السلام عليكم...



:p المسألة ليست هكذا...
أولاً: في الكود الذي ذكرته أنا هناك سطران فقط لهما علاقة بالحذف، أما إغلاق و فتح الجدول فهو للتحديث.
ثانياً: تلك الأربعة أسطر سيتم تنفيذها مرة واحدة فقط مهما كان عدد السجلات في الجدول، أما حلقة for أو while فتصور كم سيتكرر تنفيذها إذا كان الجدول يحتوي على آلاف أو ربما ملايين السجلات. سيكون الأمر بطيئاً جداً و ربما مع توقف البرنامج عن الاستجابة إلى حين انتهاء الحلقة.

نرجو الاستفادة و السلام.

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