delphi4arab منتديات دلفي للعرب
رسالة خطأ في حلقة أثناء البحث في الجدول - نسخة قابلة للطباعة

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



رسالة خطأ في حلقة أثناء البحث في الجدول - Anter2010 - 26-07-2010

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

هل هناك خلل في هذا الكود


كود :
procedure TForm1.SpeedButton1Click(Sender: TObject); Begin data.table2.First; data.table2.FindKey([data.table7Num_A.Value]); while (Data.table7Num_A.Value=data.table2Num_A.Value) and not(data.table2.Eof) do begin If data.Article.FindKey([data.table2Code_P.Value,2])then Begin data.Article.Edit; data.ArticleQtitte_stock.Value:=data.ArticleQtitte_stock.Value+ data.Table2Qtite_A.Value; end; end;end;

رسالة الخطأ

[صورة: 994355422.jpg]

وهذه قاعدة البيانات


رسالة خطأ في حلقة أثناء البحث في الجدول - kachwahed - 26-07-2010

وعليكم السلام ورحمة الله تعالى وبركاته
لم أطلع على المثال بعد، لكن لاحظ:
كود :
while (Data.table7Num_A.Value=data.table2Num_A.Value) and not(data.table2.[color=Red]Eof[/color]) do
استخدمت EOF يعني EndOfFile وليس بعدها Next!
رسالة الخطأ تعني محاولة الكتابة في الحقل الخطأ
من فضلك أكتب عنوان مناسب لاحقا...
بالتوفيق.



رسالة خطأ في حلقة أثناء البحث في الجدول - Anter2010 - 26-07-2010

السلام عليكم و رحمة الله تعالى و بركاته
شكرا الاخ كاش و احد لكن انا استعملتها مع
paradox وناجحة
الطريقة لم تعمل معي في قاعدة البيانات Absolute database
اظن المشكلة في قاعدة البيانات


رسالة خطأ في حلقة أثناء البحث في الجدول - Lam.Abdeldjalil - 27-07-2010

السلام عليكم

لم أستعمل قواعد البيانات هذه من قبل لكن لي بعض الإقتراحات :

1- أككد على ملاحظة الأستاذ kachwahed حول عدم وجود Next
2- نلاحظ في الكود لا حفظ بعد التعديل المجرى لا وجدو للـ Post أو ..

3- جرب أضف السطرين قبل وبعد نهاية كل بحث
مثال
كود :
with data.table2do begin SetRangeStart; FindKey([data.table7Num_A.Value]); SetRangeEnd; end;
4- إستخدام Locate بدل FindKey

مثال
كود :
data.table2.Locate('filed1;field2', VarArrayOf([data.table7Num_A.Value, 'value2(string)']), [loPartialKey]);

إذا لم تنجح كل هذه الإقتراحات إستخدم الـ Debuger وتعرف على السطر المؤدي إلى ظهور الرسالة

نصيحة إستعمل Query بدل Table

بالتوفيق


رسالة خطأ في حلقة أثناء البحث في الجدول - Anter2010 - 28-07-2010

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

مشكور الاخ عبد الجليل و كاش واحد على كل النصائح ساجرب نصيحتك
بارك الله فيك


رسالة خطأ في حلقة أثناء البحث في الجدول - Anter2010 - 29-07-2010

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


رسالة خطأ في حلقة أثناء البحث في الجدول - Lam.Abdeldjalil - 29-07-2010

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


يعني أن هذا الكود لم يعمل

كود :
procedure TForm1.SpeedButton1Click(Sender: TObject); Begin data.table2.First; while not(data.table2.Eof) do begin if data.Article.Locate('Num_A', data.table7Num_A.Value, [loPartialKey]) then begin If data.table2.Locate('Num_A', data.table2Code_P.Value, [loPartialKey]) then Begin data.Article.Edit; data.ArticleQtitte_stock.Value:=data.ArticleQtitte_stock.Value+ data.Table2Qtite_A.Value; data.Article.Post; end; end; data.table2.Next; end; end;
إستخدم الـ Debuger وتعرف على السطر المؤدي إلى ظهور الرسالة
بالتوفيق


رسالة خطأ في حلقة أثناء البحث في الجدول - medreg - 30-07-2010

اتمنى اخي ان يفيدك هذا
فهي محاولة بما اشار عليك به اخي Kachwahed
PHP كود :
procedure TForm1.SpeedButton1Click(Sender: TObject);
Begin
  data
.table2.First;
  
data.table2.FindKey([data.table7Num_A.Value]);
  while (
Data.table7Num_A.Value=data.table2Num_A.Value) and not(data.table2.Eof) do
  
begin
      
If data.Article.FindKey([data.table2Code_P.Value,2])then
      Begin
      data
.Article.Edit;
      
data.ArticleQtitte_stock.Value:=data.ArticleQtitte_stock.Value+ data.Table2Qtite_A.Value;
       
data.Article.Post;
      
end;
  
data.table2.Next;
  
end;
end; 
أو
PHP كود :
procedure TForm1.SpeedButton1Click(Sender: TObject);
Begin
  data
.table2.First;
  
data.table2.FindKey([data.table7Num_A.Value]);
  while (
Data.table7Num_A.Value=data.table2Num_A.Value) and not(data.table2.Eof) do
  
begin
      
If data.Article.FindKey([data.table2Code_P.Value,2])then
      Begin
    data
.Article.Edit;
    
data.ArticleQtitte_stock.Value:=data.ArticleQtitte_stock.Value+ data.Table2Qtite_A.Value;
    
data.Article.Post;
      
end;
  
end;
  
data.table2.Next;
end; 
وبالتوفيق