سلام
من در برنامه ای که با کمک دوستان در این تاپیک نوشتم میخوام هر وقت exception به وجود آمد آن را در فایلی ثبت کنم. قبلا تابعی در تِرِد اصلی ساخته ام به نام WriteLog اما با رجوع به این تابع احتمالا دچار مشکل خواهم شد و همچنین نمی خواهم از تابع Synchronize استفاده کنم
procedure MThread.Execute;
var
ADOQInsert:TADOQuery;
EQuery:String;
begin
inherited;
CoInitialize(nil) ; //CoInitialize was not calledADOQInsert := TADOQuery.Create(nil);
try
while (SQLQueue.Count > 0) and (not Terminated) do
begin
try
ADOQInsert.CoectionString:= CoStr;
ADOQInsert.CursorLocation := clUseServer;
ADOQInsert.LockType := ltReadOnly;
ADOQInsert.CursorType := ctOpenForwardOnly;
ADOQInsert.Close;
ADOQInsert.SQL.Clear;
EQuery := SQLQueue.Strings[0];
SQLQueue.Delete(0);
ADOQInsert.SQL.Add(EQuery);
ADOQInsert.ExecSQL;
except
on E:Exception do
begin
WriteLog('Error on Query Execution :' + #13 + 'SQL : "' + EQuery + '"' + #13 + 'Error : "' + E.Message + '"', '');
end;
end;
end;
finally
ADOQInsert.Free;
end;CoUninitialize();
end;
برچسب:
نویسنده: محمد رضا جوادیان