delphi4arab منتديات دلفي للعرب
eof في السجلات - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : eof في السجلات (/showthread.php?tid=1515)



eof في السجلات - yahia1921 - 16-01-2010

السلام على اخوتي
واجهتني اخوتي الكرام مشكلة في تنفيد كود من هدا النوع مهما كان استعماله المهم يغطي عمل المقارنة الى اخر الملف اكان دلك بحساب المجموع أ غيره اليكم الكود :
كود :
procedure TForm2.SpeedButton1Click(Sender: TObject); begin while adodataset1.eof=true do begin if adodataset1.fieldbyname('yousername').Value =edit3.Text then if adodataset1.fieldbyname('password').Value =edit4.Text then begin form2.Hide; form3.show; end else form1.showmodal ; end ; end ; end ;
هل هدا الكود صحيح لانه لم يشتغل معي اين الخلل
وجربت هدا ايضا و نفس الشيء باضافة
كود :
while not eof do
بدلا من
كود :
while adodataset1.eof=true do
في الاول
اد اطمح الى ان تتم المقارنة لآخر الملف لكنها تصلح مع التسجيلة الأولى فقط


eof في السجلات - محمد س - 16-01-2010

السلام عليكم
كود :
if adodataset1.locate('yousername;password',VarArrayOf([edit3.Text,edit4.text]),[]) then
شيء إخر، بالنسبة لي لم إعد أستعمل النوافذ في حالة show دائما showmodal
مثلا
كود :
unit xxx; interface type TFCahier = class(TForm) ..... end; Procedure ShowCahier(f:integer=0); implementation Procedure ShowCahier; begin with TFCahier.Create(Application) do try ShowModal; finally Release; end; end;
لفتح النافذة يكفي النداء على الدالة ShowCahier


eof في السجلات - yahia1921 - 16-01-2010

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


eof في السجلات - yahia1921 - 16-01-2010

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


eof في السجلات - محمد عبد العزيز - 19-01-2010


eof تعني نهاية الملف / جدول البيانات
bof تعني بدايته
وهي قيمة منطقية تكون صحيحة او خاطئة

الحلقة تنطلق من البداية الى النهاية مثلا
تكتب شيئ مثل:
PHP كود :
Var
 
SumQ : Integer;
begin
  SumQ
:=0;
  
Table1.First;
  
Repeat
    SumQ
:=SumQ+Table1.FieldByName('Qte').AsInteger;
    
Table1.Next;
  
Until Table1.Eof;

  
ShowMessage(IntToStr(SumQ));
end; 
Qte حقل كمية البضاعة
SumQ الكمية الكلية

او من النهاية الى البداية
نفس المثال السابق
PHP كود :
Var
 
SumQ : Integer;
begin
  SumQ
:=0;
  
Table1.Last;
  
Repeat
    SumQ
:=SumQ+Table1.FieldByName('Qte').AsInteger;
    
Table1.Prior;
  
Until Table1.Bof;

  
ShowMessage(IntToStr(SumQ));
end; 

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



eof في السجلات - محمد س - 19-01-2010

B.M.AbdelAziZ كتب :[COLOR="Red"]ومن الاحسن والاسرع استخدام SQL
[/COLOR]تصفح المنتدى لامثلة عن ذلك

+1
كما قال الأخ عبدالعزيز، إنس أمر eof و استعن بSQL


eof في السجلات - abedroof2001 - 20-07-2010

يمكنك الأستعانة ب sql لأنها أفضل وفكرتها ليست صعبة


eof في السجلات - amar_del2007 - 24-07-2010

السلام عليكم :
انا استخدم EOF في الجداول القليلة الحجم وهي ببساطة
كود :
table1.first while not table1.eof do begin some codes//// table1.next end