parhizkar2000
سه شنبه 27 اردیبهشت 1384, 00:23 صبح
سلام
من یک بانک اطلاعتی دارم که تعدادی از رکوردها رو با یه شر ط خاص میخوهام ازش حذف کنم روال کار به این صورت
Table1.First;
while not Table.eof() do
begin
if (شرط مورد نظر) then
begin
Table1.Delete;
Table1.Refresh;
end;
Table1.Next;
end;{while}
این کد باید ظاهرا درست کار کنه . ولی وقتی به Next میرسه دو رکورد میره جلو و باعث میشه که نصف رکوردها حذف بشند.
حالا وقتی این کد رو طوری تغییر میدهم که بانک رو از آخر به اول پیمایش کنه درست کار میکنه و لی رکورد اخر بانک (رکورد اولی که باید حذف بشه ) رو حذف نمی کنه . تا حالا توی هیچ برنامه ای این مشکل رو نداشتم . ضمنا بانکها یDBISAM می باشند.
((ضمنا اگه میشه راهنمایی کنید چطوری کد رو از سمت چپ بنویسم . چون اینطوری بد بنظر میرسه))
من یک بانک اطلاعتی دارم که تعدادی از رکوردها رو با یه شر ط خاص میخوهام ازش حذف کنم روال کار به این صورت
Table1.First;
while not Table.eof() do
begin
if (شرط مورد نظر) then
begin
Table1.Delete;
Table1.Refresh;
end;
Table1.Next;
end;{while}
این کد باید ظاهرا درست کار کنه . ولی وقتی به Next میرسه دو رکورد میره جلو و باعث میشه که نصف رکوردها حذف بشند.
حالا وقتی این کد رو طوری تغییر میدهم که بانک رو از آخر به اول پیمایش کنه درست کار میکنه و لی رکورد اخر بانک (رکورد اولی که باید حذف بشه ) رو حذف نمی کنه . تا حالا توی هیچ برنامه ای این مشکل رو نداشتم . ضمنا بانکها یDBISAM می باشند.
((ضمنا اگه میشه راهنمایی کنید چطوری کد رو از سمت چپ بنویسم . چون اینطوری بد بنظر میرسه))