# Parameter use für Datenbank, die bearbeitet wird
# Parameter act: n-neu c-ändern d-löschen r-registrieren
if ($use ne "" && $zug == 4) # zug aus &chk_zugang (4=Erlaubt)
{$a_debug.=".\$use($use) vorhanden zug==4 - Aktionsauswahl:<br>";
# -------- Aktionen in Datenbanken je nach $act ------- #
my $db_daten = substr($use,2); # Datenbankname aus Parameter $use extrahieren (erste 2 Zeichen weg)
if ($act eq "n")
{
put undef ,"$db_daten";
$act = "n";
$act = "c" if $db_name eq "$db1"; # wenn Nutzerdb nur ändern erlauben
$a_actiontext = "Datensatz hinzugefügt...";
$a_actionalert = "alert('Datensatz gespeichert !');";
$a_debug.=".. put (in db $db_name) ausgeführt<br>";
}elsif ($act eq "c" && $dsn ne "")
{ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Wenn Daten aus eig. Form mit "feldname=" übergeben werden und
# %_put deshalb nicht da ist; Workaround f. chg, damit DS-Inhalte nicht
# gekillt werden, die erhalten bleiben sollen (Feld bspw. nicht im eigenen Formular)
if (not defined $_put{_amount}) # wenn %_put nicht vorhanden
{
$_put{_amount} = 1; # Wichtigstes Paar f. %_put, damit es aktiv ist und chg undef richtig ausgef. wird
get "Id==!$dsn", "$db_daten", "hole_chgds";
$a_debug.="DS mit Id \$dsn($dsn) aus $db_daten geholt<br>";
get "Id==*", "$db_daten.fields", "edsfelder";
$a_debug.="<font color=red>DS aus \$db_daten($db_daten).fields geholt<br></font>";
while(get_next("edsfelder"))
{
if ($Field ne "Id") # ID nicht mit in \%_put (Ändern) - sonst inkonsistente DB!
{
$_put{$Field} = ${$Field}; #alle Werte ausser ID des DS
$a_debug.="\%_put Key-Wertpaar: (\$_put{$Field} - ${$Field})<br>";
}
if (exists ($_get{$Field}) && $_get{$Field} ne $_put{$Field})
{
$_put{$Field} = $_get{$Field} ; # Inh. ändern wenn in get vorh. und anders
$a_debug.="´Diff. in \%_get geändert: (\$_put{$Field} - $_put{$Field})<br> ";
}
}
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
chg "Id==!$dsn", undef, "$db_daten";
$act = "n";
$a_actiontext = "Datensatz geändert...";
$a_actionalert = "alert('Datensatz geändert !');";
$a_debug.=".. chg (in db $db_name) ausgeführt<br>";
}elsif ($act eq "d" && $dsn ne "")
{
del "Id==!$dsn", "$db_daten";
$act = "n";
$act = "c" if $db_name eq "$db1"; #s.o.
$a_actiontext = "Datensatz gelöscht...";
$a_actionalert = "alert('Datensatz gelöscht !');";
$a_debug.=".. del (in db $db_name) ausgeführt<br>";
}
}
---- schnapp ----