مشاهدة النسخة كاملة : رسالة خطأ في حلقة أثناء البحث في الجدول
Anter2010
26-07-2010, 10:04 PM
السلام عليكم و رحمة الله تعالى و بركاته
هل هناك خلل في هذا الكود
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;
رسالة الخطأ
http://www10.0zz0.com/2010/07/26/20/994355422.jpg
وهذه قاعدة البيانات
kachwahed
26-07-2010, 10:26 PM
وعليكم السلام ورحمة الله تعالى وبركاته
لم أطلع على المثال بعد، لكن لاحظ:
while (Data.table7Num_A.Value=data.table2Num_A.Value) and not(data.table2.Eof) do
استخدمت EOF يعني EndOfFile وليس بعدها Next!
رسالة الخطأ تعني محاولة الكتابة في الحقل الخطأ
من فضلك أكتب عنوان مناسب لاحقا...
بالتوفيق.
Anter2010
26-07-2010, 10:43 PM
السلام عليكم و رحمة الله تعالى و بركاته
شكرا الاخ كاش و احد لكن انا استعملتها مع
paradox وناجحة
الطريقة لم تعمل معي في قاعدة البيانات Absolute database
اظن المشكلة في قاعدة البيانات
Lam.Abdeldjalil
27-07-2010, 08:09 PM
السلام عليكم
لم أستعمل قواعد البيانات هذه من قبل لكن لي بعض الإقتراحات :
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, 04:52 PM
السلام عليكم و رحمة الله تعالى و بركاته
مشكور الاخ عبد الجليل و كاش واحد على كل النصائح ساجرب نصيحتك
بارك الله فيك
Anter2010
29-07-2010, 09:19 PM
السلام عليكم و رحمة الله تعالى و بركاته
للاسف اخي عبد الجليل لم تنجح طريقتك
Lam.Abdeldjalil
29-07-2010, 09:39 PM
و عليكم السلام ورحمة الله تعالى وبركاته
يعني أن هذا الكود لم يعمل
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, 11:12 AM
اتمنى اخي ان يفيدك هذا
فهي محاولة بما اشار عليك به اخي Kachwahed
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;
أو
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;
وبالتوفيق
vBulletin® , Copyright ©2008-2012