m_reza
یک شنبه 23 مرداد 1384, 22:49 عصر
سلام<o =""></o>
من یک تابع سنگین با دلفی نوشتم که زمان اجراش هم نسبتا بالاست . حالا نتیجه این تابع را می خواهم در چند Database که هر کدوم از آنها دارای چندین Table و هر table هم دارای چندین هزار رکورد می باشد پیاده کنم. برای انجام این کار از ADO و کد زیر استفاده کردم.<o =""></o>
while not(ADOTable1.Eof) do
begin
<o =""></o>ADOTable1.Edit;
<o =""></o>ADOTable1.FieldByName('aaa').Text:=function_x(ADOT able1.FieldByName('aaa').Text);<o =""></o>
ADOTable1.Next;
end;<o =""></o>
ADOTable1.Post;
همانطور که از کد مشخص است پیمایش تک تک رکورد ها و اعمال نتیجه بروی آنها زیاد روش جالبی نیست و متاسفانه زمان اجرای آن بسیار بالاست به طوریکه گاهی اوقات دستگاه هنگ می کنه، حتی برای رفع این مشکل هم تعدادی رکورد را تعیین کردم که تابع روی آنها عمل کنه و بعد از چند ساعت وقت صرف کردن معلوم شد که روی خیلی از رکوردها نتیجه پیاده نشده . در صورتیکه با استفاده از دستور Update در SQL فکر می کنم که این کار خیلی خیلی سریعتر انجام بشه ، حال به نظر شما بهترین راه برای پیاده سازی نتیجه این تابع بر روی این تعداد رکورد چیست ؟ و یا به عبارت بهتر چگونه می تونم به کمک دستورات SQL این کار را انجام بدم ؟<o =""></o>
<o =""></o>
با تشکر<o =""></o>
من یک تابع سنگین با دلفی نوشتم که زمان اجراش هم نسبتا بالاست . حالا نتیجه این تابع را می خواهم در چند Database که هر کدوم از آنها دارای چندین Table و هر table هم دارای چندین هزار رکورد می باشد پیاده کنم. برای انجام این کار از ADO و کد زیر استفاده کردم.<o =""></o>
while not(ADOTable1.Eof) do
begin
<o =""></o>ADOTable1.Edit;
<o =""></o>ADOTable1.FieldByName('aaa').Text:=function_x(ADOT able1.FieldByName('aaa').Text);<o =""></o>
ADOTable1.Next;
end;<o =""></o>
ADOTable1.Post;
همانطور که از کد مشخص است پیمایش تک تک رکورد ها و اعمال نتیجه بروی آنها زیاد روش جالبی نیست و متاسفانه زمان اجرای آن بسیار بالاست به طوریکه گاهی اوقات دستگاه هنگ می کنه، حتی برای رفع این مشکل هم تعدادی رکورد را تعیین کردم که تابع روی آنها عمل کنه و بعد از چند ساعت وقت صرف کردن معلوم شد که روی خیلی از رکوردها نتیجه پیاده نشده . در صورتیکه با استفاده از دستور Update در SQL فکر می کنم که این کار خیلی خیلی سریعتر انجام بشه ، حال به نظر شما بهترین راه برای پیاده سازی نتیجه این تابع بر روی این تعداد رکورد چیست ؟ و یا به عبارت بهتر چگونه می تونم به کمک دستورات SQL این کار را انجام بدم ؟<o =""></o>
<o =""></o>
با تشکر<o =""></o>