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

نسخة كاملة : رسالة خطأ في حلقة أثناء البحث في الجدول
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم و رحمة الله تعالى و بركاته

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


كود :
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]

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

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

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

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

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


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

كود :
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 وتعرف على السطر المؤدي إلى ظهور الرسالة
بالتوفيق
اتمنى اخي ان يفيدك هذا
فهي محاولة بما اشار عليك به اخي 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; 
وبالتوفيق