Moin...
Zitat:
bevor ich alles umbaue.
...bei mir war das zügig erledigt.
Ich habe mich für Variante 2 entschieden.
[Werbung ON]
Vieleicht hat mir geholfen daß ich die
SQL in Dateien/Ressourcen gespeichert habe.
Damit gab es "quasi" keinen Umbau am Quelltext.
Siehe Bild...
Quelltext Old:
Delphi-Quellcode:
function TDatabaseBase.GetLastId: Integer;
begin
Result := FConnection.GetLastAutoGenValue('');
end;
...
function TDatabase.Write(User: TSEAMUser): Integer;
var
Qry: TFDQuery;
begin
Result := -1;
Qry := CreateQuery;
try
case User.State of
sdsNew:
begin
Qry.SQL.Text := GetSQLByName('COM_INSERT_USERS');
...
Qry.ParamByName('ACC').AsInteger := User.AccessCount;
Qry.ExecSQL;
User.ID := GetLastId;
Result := User.ID;
end;
sdsModified:
begin
Qry.SQL.Text := GetSQLByName('COM_EDIT_USERS');
Qry.ParamByName('ID').AsInteger := User.ID;
Qry.ParamByName('ROI1').AsInteger := User.Role_1.ID;
...
Quelltext New:
Delphi-Quellcode:
function TDatabaseBase.InsertWithGetLastID(
Query: TFDQuery): Integer;
begin
Query.Open;
Result :=
Query.FieldByName('
LastID').AsInteger;
end;
...
function TDatabase.
Write(User: TSEAMUser): Integer;
var
Qry: TFDQuery;
begin
Result := -1;
Qry := CreateQuery;
try
case User.State
of
sdsNew:
begin
Qry.SQL.Text := GetSQLByName('
COM_INSERT_USERS');
...
Qry.ParamByName('
ACC').AsInteger := User.AccessCount;
User.ID := InsertWithGetLastID(Qry);
Result := User.ID;
end;
sdsModified:
begin
Qry.SQL.Text := GetSQLByName('
COM_EDIT_USERS');
Qry.ParamByName('
ID').AsInteger := User.ID;
Qry.ParamByName('
ROI1').AsInteger := User.Role_1.ID;
...
Danke nochmal.