Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Bekomme kein INSERT mit FB und IBDAC hin!?!

  Alt 13. Jan 2010, 08:12
Hallo,

zu deiner Ausgangsfrage, warum es nicht klappt.

Delphi-Quellcode:
  TMPSQL := TIBCSQL.Create(nil);

  for I := 1 to 31 do
  begin
    TMPSQL.SQL.Add('INSERT INTO TBLCALENDAR(ISHOLIDAY,DATUM) VALUES(0,''13.07.2010'');');
  end;
31 mal wird insert into als Befehl eingetragen

Delphi-Quellcode:
  
  TMPSQL.AutoCommit := True;
  TMPSQL.Execute;
Jetzt wird der Code einmal zum Server geschickt.
Der sieht jetzt also folgendes

INSERT INTO TBLCALENDAR(ISHOLIDAY,DATUM) VALUES(0,''13.07.2010'');INSERT INTO TBLCALENDAR(ISHOLIDAY,DATUM) VALUES(0,''13.07.2010'');
INSERT INTO TBLCALENDAR(ISHOLIDAY,DATUM) VALUES(0,''13.07.2010'')

Und das waren nur 3 der 31.

Firebird kann im Untershcied zu MS-SQL immer nur einen Befehl ausführen
(es sei denn, man benutzt irgendeine Script-Komponente).

Durch das Umbauen auf die Parameter ist das TMPSQL.Execute;
mit in die For-Schleife gerutscht.
Somit wird der Befehl auch korrekt 31 mal ausgeführt.

Das war ja auch der ursprüngliche Plan ...


Zum Ändern der Tabellen-Struktur:
Warum soll das bei Firebird mehr Leistung bringen,
vom Trigger abgesehen ?
Index ist Index (bei Firebird zumindestens)

Ich würde das so lassen, falls später mal Replikation ein Thema ist,
ist der künstliche Schlüsel ID ideal.

Heiko
Heiko
  Mit Zitat antworten Zitat