Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Probleme beim Aufruf einer StoredProcedure

  Alt 22. Jan 2010, 15:02
Datenbank: Firebird • Version: 2.1 • Zugriff über: UniDAC
Hallo szuammen,

ich habe ein großes Problem. Ich habe folgende SP:
SQL-Code:
SET TERM ^ ;

CREATE procedure SP_NEW_CUSTOMER
returns (
    NEW_STAMMID integer)
as
begin
  NEW_STAMMID = gen_id(GEN_STAMMD_ID, 1);
  insert into STAMMD (STATUSNR, FIRMA, NAME, VORNAME, KURZNAME, ANREDENR, BEMERKUNG, KENWORT, AKTIVE)
  values (2, 1, '', '', '', 1, '', '', 1);
  insert into KUNDEN (STAMMNR, version, PARENTNR)
  values (:NEW_STAMMID, 0, :NEW_STAMMID);
  insert into GRUNDDATEN
  values (:NEW_STAMMID, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
          null, null, null, null, null, null, null, null, null, null);
  suspend;
end
^

SET TERM ; ^
Aufgerufen wird Sie so :
Delphi-Quellcode:
    with DM_Main.UniQuery_Temp do
    begin
      SQL.Clear;
      SQL.Text := 'SELECT * FROM SP_NEW_CUSTOMER';
      Open;
      NewStammID := FieldByName('NEW_STAMMID').AsInteger;
      StammNr := NewStammID;
      Close;
      DM_Main.UniTrans_MainTrans.Commit;
    end;
Nach diesem Aufruf, werden noch zwei weitere Masken aufgerufen. Bei der ersten Maske werden Werte in der STAMMD hinzugefügt oder geändert mit Update-Befehlen. In der zweiten Maske werden ebenfalls Werte geändert oder hinzugefügt in der Tabelle Grunddaten. Jetzt zu meinen zwei Problemen.

1.) Die Update-Befehle für die Tabelle STAMMD werden nicht durchgeführt.
2.) In der Tabelle KUNDEN wird ein anderer AutoInc-Wert genommen als in der STAMMD.

Wo habe ich einen Fehler gemacht ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat