Thema: Delphi Erweiterter SQL-Fehler

Einzelnen Beitrag anzeigen

Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1

Erweiterter SQL-Fehler

  Alt 8. Dez 2003, 07:42
Hinweis: Ich will nicht wissen warum das Statement falsch ist, mein Problem liegt woanders!!

Wenn ich dieses Statement

Delphi-Quellcode:
CREATE TRIGGER AutoIncAdresse FOR admin.FORMFELDER AFTER INSERT EXECUTE
(
  IF new.RECHTE_ID IS NULL THEN
    SELECT MAX(RECHTE_ID) + 1 INTO :new.RECHTE_ID FROM admin.FORMFELDER
  ELSE
  IF new.RECHTE_ID <= 0 THEN
    SELECT MAX(RECHTE_ID) + 1 INTO :new.RECHTE_ID FROM admin.FORMFELDER
  ENDIF;
  IF new.RECHTE_ID IS NULL THEN
    :new.RECHTE_ID := 1;
  ENDIF
)
durch die TADOQuery jage krieg ich folgenden Fehler:

Code:
Ein Parameterobjekt ist nicht ordnungsgemäß definiert. Inkonsistente oder unvollständige Informationen wurden angegeben
Wenn ich das jedoch im SQL Studio ausführe krieg ich diesen Fehler:

Delphi-Quellcode:
---- Error -------------------------------
Auto Commit: On, SQL Mode: Internal, Isolation Level: Committed
Syntax error or access violation;-5015 POS(332) Missing keyword:WHILE,IF,EXECUTE,SELECT,RETURN,DECLARE,CASE,UPDATE,TR.
CREATE TRIGGER AutoIncAdresse FOR admin.FORMFELDER AFTER INSERT EXECUTE
(
  IF new.RECHTE_ID IS NULL THEN
    SELECT MAX(RECHTE_ID) + 1 INTO :new.RECHTE_ID FROM admin.FORMFELDER
  ELSE
  IF new.RECHTE_ID <= 0 THEN
    SELECT MAX(RECHTE_ID) + 1 INTO :new.RECHTE_ID FROM admin.FORMFELDER
  ENDIF;
  IF new.RECHTE_ID IS NULL THEN // "new.RECHTE_ID" hat hier ne rote Schrift
    :new.RECHTE_ID := 1;
  ENDIF
)
Wie krieg ich es hin das ich diese Meldung auch in Delphi erhalte? Brauch ich dafür ne andere Query??
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat