Announcement

Collapse
No announcement yet.

Firebird: Mehrere Inserts in einem FBCommand

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

  • Firebird: Mehrere Inserts in einem FBCommand

    Hi zusammen,

    ich vergleiche zur Zeit unterschiedliche Datenbanken in der Ansteuerung unter VB.NET.

    Für Firebird verwende ich den offiziellen .NET Data Provider:
    FirebirdSql.Data.FirebirdClient


    Ist es richtig, dass in einem FBCommand immer nur ein einziger Befehl abgesetzt werden kann.

    FBCommand.CommandText = "Insert into Header (1, 2); Insert into Header(2, 3);"
    FBCommand.ExecuteQuery()


    führt zu folgender Fehlermeldung

    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 1, char 26
    insert



    Mit Datenbanksystemen wie MSSQL, DB2 oder Postgres geht dies über die Commandschnittstelle ohne Probleme.

    Kann dies jemand bestätigen? Bzw kann man das Problem umgehen, ohne für jeden einzelnen Befehl den ExecuteQuery Aufruf absetzen zu müssen?

  • #2
    Originally posted by basti01985 View Post
    Ist es richtig, dass in einem FBCommand immer nur ein einziger Befehl abgesetzt werden kann.
    Ja, leider. Gleiches gilt für die Personal Version von IBExpert, aber in der "Bezahl-Version" und in der (weitgehend undokumentierten) isql.exe kannst Du auch Stapelverarbeitung ausführen.

    Bzw kann man das Problem umgehen, ohne für jeden einzelnen Befehl den ExecuteQuery Aufruf absetzen zu müssen?
    Alternativen sind StoredProcedures und Konstruktionen wie folgt:
    Code:
    INSERT INTO xxx ( .... )
       SELECT yyy FROM zzz
    Außerdem kannst Du innerhalb einer FbConnection einen FbCommand in einer Schleife mit jeweils neuen Parametern wiederholt aufrufen. Parameter sind sowieso das Gebot der Stunde...

    Gruß Jürgen

    Comment

    Working...
    X