Announcement

Collapse
No announcement yet.

trigger mit TIBSQL + DDL erzeugen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • trigger mit TIBSQL + DDL erzeugen

    Hallo,
    ich versuche gerade einen trigger dynamisch in einer firebird-db zu erstellen.
    Aber sobald ich über DDL einen "set term ..." absetzte erhalte
    ich die Fehlermeldung: ...Exception der Klasse EExternalException mit der Meldung 'Externe Exception C0000025' aufgetreten. Grundsätzlich kann
    der Schnipsel s.u. ja nicht falsch sein, da ich andere Elemente wie. Generatoren
    und Tabellen so problemlos erzeugen kann. Aber mit dem 'set' scheint meine
    Umgebung (BDS2009,Firebird 2.1.3) hier ein Problem zu haben. Wie kann ich
    alternativ einen Trigger dynamisch erzeugen?

    AnsiString m_sql = "set term #;\n";
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add(m_sql);
    IBSQL->ExecQuery();
    IBTransaction->CommitRetaining();

  • #2
    Code:
    IBSQLUpdate->SQL->Clear();           
    IBSQLUpdate->SQL->Add("CREATE TRIGGER MAGNETKARTE_BI FOR MAGNETKARTE");
    IBSQLUpdate->SQL->Add("ACTIVE BEFORE INSERT POSITION 0");
    IBSQLUpdate->SQL->Add("AS");
    IBSQLUpdate->SQL->Add("BEGIN");
    IBSQLUpdate->SQL->Add("IF (NEW.ID IS NULL) THEN");
    IBSQLUpdate->SQL->Add("NEW.ID = GEN_ID(GEN_MAGNETKARTE_ID,1);");
    IBSQLUpdate->SQL->Add("END");
    IBSQLUpdate->ExecQuery();

    Comment

    Working...
    X