Ich würde das ganze möglichst vereinfachen. Da man ja seine Datenbank kennt, prüft man auf das Feld was man ergänzt hat etwa so:
Delphi-Quellcode:
IBSQLUpdate.close;
//IBSQL
IBSQLUpdate.SQL.Add('
Select * from TabelleA');
if not ibsqlupdate.transaction.active
then
ibsqlupdate.transaction.starttransaction;
IBSQLUpdate.ExecQuery;
bfiliale:= dm.IBSQLUpdate.FieldIndex['
filiale']>=0 ;
//bfiliale:boolean
IBSQLUpdate.Close;
if not filiale
then
begin
dm.IBSQLUpdate.Close;
dm.ibsqlupdate.SQL.Clear;
dm.IBSQLUpdate.SQL.Add('
ALTER TABLE TabelleA Add Filiale integer');
moddatabase;
// Führt die Query aus mit Transaktionssteuerung
end;
Die Idee, das mit einer allgemeinen Funktion zu machen ist aber grundsätzlich gut. Man muss dabei dann aber auch an die verschiedenen Datentypen (VarChar, Numeric, Blob) die weitere Parameter brauchen denken oder noch besser diese als Domains anlegen.