次のような状況があります。
DelphiXEで開発しています。関数の大部分を DATAMODULE に入れています。
function1 (データベース、トランザクション、paramInteger) : float
たとえば、function1 はパラメーター データベース (TIBDATABASE)、トランザクション TIBTRANSACTION、および追加のパラメーター整数を受け取ります。float を返す
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);
スレッドセーフかどうか