Thread Subroutine von vorne durchlaufen (8 answers)
Opened by DBusse at 2011-09-05 10:24

Gast DBusse
 2011-09-05 10:24
#152090 #152090
Moin,

gibt es eine Möglichkeit, eine Subroutine innerhalb einer Schleife von vorne zu starten?

Folgende Situation soll zu dem Neustart führen:

Eine Subroutine füllt eine Tabelle via Sql-Befehlen mit Datensätzen. Gelegentlich kommt es vor, dass ein Datensatz bereits vorhanden ist, so dass das Einmaligkeits-Constraint verletzt wird. Ob der Fehler auftritt, wird innerhalb einer IF-Anweisung geklärt, welche im Fehlerfall eine weitere Subroutine ausführt, welche den fehlerhaften Datensatz löscht. Nach erfolgreichem Löschen, soll die Subroutine zum Befüllen der SQL-Datenbank erneut von vorne durchlaufen werden.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sub ladeTabellen {

.....*vom AUTOR gekürzt*.......

if ($rc = 512) {
logINFO("Lösche fehlerhaften Datensatz aus Tabelle J".$yy.$mm."#".$teile[0].$teile[1],1);
$rc= executeLadeTabelleFix($input, $yy, $mm) or die ("Fehler beim ausführen von executeLadeTabelleFix");

!!! an dieser Stelle soll die Subroutine "sub ladeTabellen" von vorne beginnen !!!

} elsif ($rc =! 0) {
return(logERROR("ladeTabelle: Fehler beim Laden der Tabelle ".$teile[0].$teile[1]." Fehler: $! und RC: ".$rc,1));
}
return($rcOK);
}

Last edited: 2011-09-05 11:08:18 +0200 (CEST)

View full thread Subroutine von vorne durchlaufen