}elsif ($act eq "c" && $dsn ne "") #dsn wird überg. ist ID des enstpr.DS
{ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# 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";
# undef %_put; undef %_get;
# get "Id==!$dsn", "$db_daten", "hole_chgds";
$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";
....