منظورتون از "مقادیر بی معنی" چیه ؟ نمونه قرار بدید
چند نکته در مورد کد :
زمانی که یک شی رو Create می کنید بهتره از فرمت زیر استفاده کنید تا مطمئن باشید که اون شی حتما آزاد میشه :
mQuery := TADOQuery.Create(nil);
try
try
...
except
...
end;
finally
mQuery.Free;
end;
در حال حاضر اگر در بین کار خطایی رخ بده حتما Memory-Leak ایجاد میشه و برای برنامه ای که به صورت Service و دایما در حال اجراست وجود Memory-Leak حتما مشکل ساز میشه
برای Object هایی که در Thread استفاده می کنید بهتره که اونها رو در Constructor مربوط به Thread بسازید و در Destructor آزاد کنید
نیاز نیست هر بار که حلقه داخل Thread اجرا میشه دوباره Connect بشید به بانک اطلاعاتی، اگر در Constructor مربوط به Thread اشیا Connection و Query و IdTCPClient رو بسازید ، می تونید در ابتدای متد Execute به بانک اطلاعاتی وصل بشید و در داخل حلقه فقط چک کنید اگر ارتباط قطع شده بود دوباره متصل بشید
قبل از حلقه ای که برای ساخت Thread نوشتید از دستور mQuery.First استفاده کنید تا اطمینان داشته باشید که حلقه از رکورد اول شروع میشه، در حالت کلی برای پیمایش یک DataSet بهتره که از حلقه While و بررسی TDataSet.Eof استفاده بشه
...
چند نمونه از خروجی برنامه بذارید تا بررسی بشه