我有以下情况。
我们在 DelphiXE 中开发。我们将大部分功能放在一个 DATAMODULE 中。
function1(数据库,事务,paramInteger):float
例如function1取参数数据库(TIBDATABASE)、事务TIBTRANSACTION和附加参数整数。并返回一个浮点数
function GetLastPretAch(DIBase : TIBDatabase; Tran : TIBTransaction; const aID : Integer) : Double;
var workQuery : TIBQuery;
begin
try
workQuery := TIBQuery.Create(Application);
try
workQuery.Close;
workQuery.Database := DIBase;
workQuery.Transaction := Tran;
workQuery.SQL.Clear;
workQuery.SQL.Add('SELECT * FROM GETLASTPRETACH(-1, :AARTNR)');
workQuery.ParamByName('AARTNR').AsInteger := aID;
workQuery.Open;
Result := workQuery.FieldByName('LASTPRET').AsFloat;
except
on e : Exception do begin
raise EMagisterException.Create(TranslateIbError(e));
end;
end;
finally
FreeAndNil(workQuery);
end;
end;
现在我想从一个线程中使用这个函数。这个线程安全吗?
inside execute procedure like
ID := GetLastPretAch(database, transaction, 1);
是否线程安全?