Einzelnen Beitrag anzeigen

Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#2

Re: Stored Procedure iknoriert DB-Einstellungen

  Alt 22. Jun 2004, 09:48
Erstmal ist in Deiner Procedure ein Fehler: SUSPEND ist falsch, dies ist nur dazu da Werte Deiner Procedure zurückzuliefern. Du hast aber keine Rückgabeparameter definiert.

Zitat von Albi:
Code:
CREATE PROCEDURE PROCINSERT (
    FNAME VARCHAR (40),
    FPLZ CHAR (5),
    FORT VARCHAR (40))
AS
BEGIN
  Insert into test1 (Name, PLZ, Ort)
  Values (:fName,:fPlz,:fOrt);
  SUSPEND;
END
Hier mal ein Beispiel für Dein Testprogramm mit einem DataSet. Die Procedure hat nun eine Fehlerbehandlung. Die SQL Anweisung für Dein DataSet sollte so aussehen:
select status from procinsert(:fname,:fplz,:fort) Code der Procedure:
Code:
CREATE PROCEDURE PROCINSERT (
    FNAME VARCHAR (40),
    FPLZ CHAR (5),
    FORT VARCHAR (40)
) RETURNS (
  STATUS INTEGER
)
AS
BEGIN
  STATUS = 0;
  Insert into test1 (Name, PLZ, Ort)
  Values (:fName,:fPlz,:fOrt);
  suspend;

  WHEN ANY DO
  BEGIN
    STATUS = 1;
    SUSPEND;
  END
END
Und hier das entsprechende Snipset aus Deinem Testprogramm:

Delphi-Quellcode:
If Form1.RadioButton2.Checked = True Then
Begin
  IBTMain.StartTransaction;
  With MyIBDataSet DO
  Begin
    ParamByName('fName').Value:= Edit2.Text;
    ParamByName('fPLZ').Value:= Edit3.Text;
    ParamByName('fOrt').Value:= Edit4.Text;
    Open;
    
    if FieldByName('STATUS').AsInteger = 0 then
      IBTMain.Commit
    else
    begin
      IBTMain.Rollback;
      ShowMessage('Fehler aufgetreten!');
    end;
  end;
end;
Gruß,
Marcel
Marcel Gascoyne
  Mit Zitat antworten Zitat