Leser: 1
|< 1 2 >| | 16 Einträge, 2 Seiten |
$ref_hash_haupt = &datensatz_von_datenbank_laden( $dbh, "select * from kontakte where ID = ?", $id, "fetchrow_hashref", "");
&kontaktfenster_inhalt_aufbauen($frame_kontakte_haupt, \%{$ref_hash_haupt}, $registerkarte,....
1
2
3
$frame_kontakte_haupt->Button(-text => '>>', -command => [\&naechster_Datensatz, $ref_hash_haupt->{'id'}, $frame_kontakte_haupt, \%{$ref_hash_haupt}, $registerkarte,....])->grid(-row=>'0', -column=>'5', -sticky => 'w');
$button_speichern=$frame_top_toolbox->Button(-text => "Speichern", -command => sub{&sichern($dbh, "kontakte", \%{$ref_hash_haupt}, "zimmer_id", "zimmer", "fetchrow"), &sichern($dbh, "adresse", \%{$ref_hash_adresse}, "zimmer_id", "zimmer", "fetchall", $ref_hash_haupt->{'id'})},)->grid(-row=>'0', -column=>'2', -sticky => 'w');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
sub naechster_Datensatz{
my ($id, $frame_kontakte_haupt, $ref_hash_haupt, $registerkarte,...) = @_;
my $sth = $dbh->prepare( "SELECT id FROM kontakte WHERE id $zeichen ? LIMIT 1" );
$sth->execute ($id);
my $ref = $sth->fetchrow_hashref();
$sth->finish ();
if ((!defined($ref)) && ($zeichen eq "<")){
$sth = $dbh->prepare( "SELECT id FROM kontakte ORDER BY id DESC LIMIT 1" );
$sth->execute ();
$ref = $sth->fetchrow_hashref();
$sth->finish ();
}
if ((!defined($ref)) && ($zeichen eq ">")){
$sth = $dbh->prepare( "SELECT id FROM kontakte ORDER BY id LIMIT 1" );
$sth->execute ();
$ref = $sth->fetchrow_hashref();
$sth->finish ();
}
$ref_hash_haupt = &datensatz_von_datenbank_laden( $dbh, "select * from kontakte where ID = ?", $ref->{'id'}, "fetchrow_hashref", "");
for my $item($frame_kontakte_haupt->children()){
$item->destroy();
}
for my $item($registerkarte->children()){
$item->destroy();
}
for my $item($frame_top_toolbox->children()){
$item->destroy();
}
print "ID_HASH $ref_hash_haupt->{'id'}\n";
&kontaktfenster_inhalt_aufbauen($frame_kontakte_haupt, \%{$ref_hash_haupt}, $registerkarte,...);
}#naechster_Datensatz
sub sichern{
my ($dbh, $tabellen_name, $hash_ref, $typ_fuer_browseentry, $tabelle_fuer_browseentry, $art_der_sicherung, $id_von_hauptkontakt) = @_;
my ($sql, $zeilen_bezeichnung, @array, $zeile, $values);
#$hash_ref = typ_in_wert_wandeln(\%{$hash_ref}, $typ_fuer_browseentry, $tabelle_fuer_browseentry, $dbh, "id", "beschreibung");
if ($art_der_sicherung eq "fetchall"){
my $sth_id_kontrolle =$dbh->prepare ("select id from $tabellen_name");
$sth_id_kontrolle->execute ();
my $id_kontrolle = $sth_id_kontrolle->fetchall_hashref('id');
$sth_id_kontrolle->finish();
foreach my $datensatz_id (sort keys(%{$hash_ref})) {
if (defined($id_kontrolle->{$datensatz_id})){
foreach $zeilen_bezeichnung (keys(%{$hash_ref->{$datensatz_id}})) {
$sql .= "," if $sql;
$sql .= "$zeilen_bezeichnung"." = ?";
$values = Encode::encode ("ISO-8859-1", $hash_ref->{$datensatz_id}->{$zeilen_bezeichnung});
push (@array, "$values");
}
push (@array, $datensatz_id);
$sql = "UPDATE $tabellen_name SET $sql WHERE id = ?";
$dbh->do ($sql, undef, @array);
undef $sql;
undef @array;
}
else {
print "INSERT";
foreach $zeilen_bezeichnung (keys(%{$hash_ref->{$datensatz_id}})) {
next if (!defined ($hash_ref->{$datensatz_id}->{$zeilen_bezeichnung}));
$sql .= "," if $sql;
$sql .= "$zeilen_bezeichnung"." = ?";
$hash_ref->{$datensatz_id}->{'kontakte_id'} = $id_von_hauptkontakt;
$values = Encode::encode ("ISO-8859-1", $hash_ref->{$datensatz_id}->{$zeilen_bezeichnung});
push (@array, "$values");
}
push (@array, $datensatz_id);
$sql = "INSERT INTO $tabellen_name SET $sql" if (defined ($sql));
print "\n\n $sql \n\n";
if (defined ($sql)){
$dbh->do ($sql, undef, @array);
}
undef $sql;
undef @array;
#$hash_ref = &leere_zeilen_an_hlist_anhaengen( $dbh, "select * from $tabellen_name where kontakte_id = ?", $id_von_hauptkontakt, \%{$hash_ref});
}
}
}
elsif($art_der_sicherung eq "fetchrow"){
if (defined($hash_ref->{'id'})){
foreach $zeilen_bezeichnung (keys(%{$hash_ref})) {
$sql .= "," if $sql;
$sql .= "$zeilen_bezeichnung"." = ?";
$values = Encode::encode ("ISO-8859-1", $hash_ref->{$zeilen_bezeichnung});
push (@array, "$values");
}
push (@array, $hash_ref->{'id'});
$sql = "UPDATE $tabellen_name SET $sql WHERE id = ?";
print @array;
$dbh->do ($sql, undef, @array);
undef $sql;
undef @array;
}
else {
foreach $zeilen_bezeichnung (keys(%{$hash_ref})) {
next if (!defined ($hash_ref->{$zeilen_bezeichnung}));
$sql .= "," if $sql;
$sql .= "$zeilen_bezeichnung"." = ?";
$values = Encode::encode ("ISO-8859-1", $hash_ref->{$zeilen_bezeichnung});
push (@array, "$values");
}
$sql = "INSERT INTO $tabellen_name SET $sql" if (defined ($sql));
print "\n\n $sql \n\n";
if (defined ($sql)){
$dbh->do ($sql, undef, @array);
}
undef $sql;
undef @array;
}
}
}
}#sichern
...\%{$ref_hash_haupt}...
|< 1 2 >| | 16 Einträge, 2 Seiten |