Sieht ganz gut aus. Ich würde noch das Close weg geben und ein sauberes
Exception-Handling machen. In etwa so:
Delphi-Quellcode:
var
proc: TIBCStoredProc;
ta: TIBCTransaction;
begin
ta := TIBCTransaction.Create(nil);
ta.DefaultConnection := ibc_mainDB;
proc := TIBCStoredProc.Create(nil);
proc.Transaction := ta;
try
ta.StartTransaction;
try
proc.StoredProcName := 'CREATECUSTOMER';
proc.Prepare;
proc.ParamByName('name').Value := custName;
proc.ParamByName('title').Value := title;
proc.ParamByName('forename').Value := forename;
proc.ParamByName('surname').Value := surname;
proc.ParamByName('street').Value := street;
proc.ParamByName('houseNo').Value := houseNo;
proc.ParamByName('country').Value := Uppercase(country);
proc.ParamByName('zipcode').Value := zipcode;
proc.ParamByName('cityname').Value := cityname;
proc.ExecProc;
result := proc.ParamByName('contactid').AsInteger;
ta.Commit;
except
ta.Rollback;
raise;
end;
finally
proc.Free;
ta.Free;
end;
end;
Thomas