Közben meglett a megoldás: nem volt transaction.commit.
Ezzel viszont még nincs vége a dolognak. Azt mondjátok még meg nekem kérlek, hogy ha nagy mennyiségű adatot kell "belelapátolnom" az adatbázisba, akkor melyik módszer a leggyorsabb? Illetve melyik járható? Úgy értem, hogy most ugye megadok a programban egy stringet, amiben ott vannak paraméterek, amiket aztán megadok, hogy melyiket honnan vegye ki és írja be. Gondolom (persze lehet, hogy rosszul gondolom) van valamilyen korlátozás ennek a stringnek a hosszára. Menteni való adat rengeteg van, vegyesen. Előjeles kétbyte-osak, előjel nélküli kétbájtosak, byteosak, booleanek. Összesen egy beírásnál talán 10 kbyte is összejön. (Ez most nagyon saccolás, de a nagyságrend ide esik.)
Van-e esetleg másik, jobb, gyorsabb, praktikusabb módszer a nagy mennyiségű adat beömlesztésére? (Pl. előtte a kiírandókat tegyem ki egyetlen strigbe és utána, így adjam ki az SQL utasítást)
A kis tesztprogramom (ami végre már működik is) így néz ki:
SQLQuery.Close;
SQLQuery.SQL.Text:='insert into Table0 (MSB_PLC_Comm_0, MSB_PLC_Comm_1, MSB_PLC_Comm_2, MSB_PLC_Comm_3) values (:m1, :m2, :m3, :m4)';
SQLQuery.ParamByName('m1').AsInteger := 1;
SQLQuery.ParamByName('m2').AsInteger := 5;
SQLQuery.ParamByName('m3').AsInteger := 8;
SQLQuery.ParamByName('m4').AsInteger := 11;
SQLQuery.ExecSQL;
SQLTrans.Commit;