masoode
سه شنبه 07 اردیبهشت 1395, 04:35 صبح
سلام
من در برنامه ای که با کمک دوستان در این تاپیک (http://barnamenevis.org/showthread.php?521793-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-SQL-Server-%D8%AF%D8%B1-Thread) نوشتم میخوام هر وقت exception به وجود آمد آن را در فایلی ثبت کنم. قبلا تابعی در تِرِد اصلی ساخته ام به نام WriteLog اما با رجوع به این تابع احتمالا دچار مشکل خواهم شد و همچنین نمی خواهم از تابع Synchronize استفاده کنم
procedure MThread.Execute;
var
ADOQInsert:TADOQuery;
EQuery:String;
begin
inherited;
CoInitialize(nil) ; //CoInitialize was not called
ADOQInsert := TADOQuery.Create(nil);
try
while (SQLQueue.Count > 0) and (not Terminated) do
begin
try
ADOQInsert.ConnectionString:= ConnStr;
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;
چه پیشنهادی دارید؟
من در برنامه ای که با کمک دوستان در این تاپیک (http://barnamenevis.org/showthread.php?521793-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-SQL-Server-%D8%AF%D8%B1-Thread) نوشتم میخوام هر وقت exception به وجود آمد آن را در فایلی ثبت کنم. قبلا تابعی در تِرِد اصلی ساخته ام به نام WriteLog اما با رجوع به این تابع احتمالا دچار مشکل خواهم شد و همچنین نمی خواهم از تابع Synchronize استفاده کنم
procedure MThread.Execute;
var
ADOQInsert:TADOQuery;
EQuery:String;
begin
inherited;
CoInitialize(nil) ; //CoInitialize was not called
ADOQInsert := TADOQuery.Create(nil);
try
while (SQLQueue.Count > 0) and (not Terminated) do
begin
try
ADOQInsert.ConnectionString:= ConnStr;
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;
چه پیشنهادی دارید؟