Timo: ODBC-Transaktion

Beitrag lesen

Hallo alle zusammen,

ich habe folgendes Problem: Auf einer Datenbank soll folgende Transaktion durchgeführt werden:
1. Löschen aller Datensätze (Delete * from ...where key=...)
2. Einfügen neuer Datensätze eben dahin; per Schleife durch Array:
for ($i=0;$i<10;$i++) {
  $sql = "insert into table ('sp1','sp2') values ($i,$afield[$i])";
  odbc_exec($connection,$sql);
}
3. Das ganze noch innerhalb einer 2 Tabelle nochmal.

Das entweder komplett alles oder gar nichts ausgeführt werden soll brauche ich hier wohl nicht erst erwähnen.

Die geplante Umsetzung in PHP:

odbc_autocommit($connection,0); // disble AutoCommit

// alle Kommandos ausführen
for ($i=0;$i<10;$i++) {
  $sql = "insert into table ('sp1','sp2') values ($i,$afield[$i])";
  odbc_exec($connection,$sql);
}
// und weitere odbc_exec() hier

odbc_commit($connection);

Nach menschlichem Dafürhalten würde es auch laufen (unter ASP hat eine solche Lösung problemlos funktioniert) - hier werden alle Aktionen aber einzeln durchgeführt; nichts mit "Transaktion".
Wenn bspw. eine Tabelle gesprerrt ist und deshalb nicht geschrieben werden kann dürfte schlichtweg gar nichts passieren, ebenso wie beim Versuch, eine leere Zeichenfolge in ein Feld einzufügen, wo genau das nicht erlaubt ist.

Hat jemand eine Idee, was hier falsch läuft?

Danke

Timo