#! f:/Perl/bin/perl use strict; use CGI qw(:standard); use DBI; use CGI::Carp qw/fatalsToBrowser/; my $dbh = DBI->connect('DBI:ODBC:driver=Microsoft Access-Treiber (*.mdb); dbq=Kunden.mdb') or die $DBI::errstr; my $cgi = CGI->new(); my %params = $cgi->Vars(); print $cgi->header(); if ( exists $params{suchanfrage} ) { &Suche ($cgi, \%params) } elsif( exists $params{eintrag} ) { &Eintragen($cgi, \%params) } else{ print 'Ich weiß nicht, was ich machen soll'; } print $cgi->end_html(); # ------------------------------------------------------------ sub Suche { my ($cgi, $params) = @_; $cgi->start_html('Antwort'); my $sqlStatement = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name, Tabelle1.Telefon, Tabelle2.Rechnungsbetrag FROM Tabelle1 JOIN Tabelle2 USING(Kundennummer)~; my $sth = &FireSql($dbh, $sqlStatement); if ($sth->rows < 1) { print $cgi->p("Keine Daten gefunden"); return; } # if print qq~

Suchergebnis:


\n~; while( my @data = $sth->fetchrow() ) { printf qq~ \n~, @data[0..3]; } # while } # Suche # ------------------------------------------------------------ sub Eintragen { print 'Ich will was eintragen'; } # Eintragen # ------------------------------------------------------------ # ------------------------------------------------------------ sub FireSql { my ($dbh, $sqlStatement, @values) = @_; my $sth = $dbh->prepare($sqlStatement) or die "Error: couldn't prepare sql: $DBI::errstr\n$sqlStatement\n"; $sth->execute(@values) or die "Error: couldn't execute sql: $DBI::errstr\n$sqlStatement\n"; return ($sth); } # FireSql
Kundennummer: Adresse: Name: Telefonnummer: Rechnungsbetrag:
%s %s %s %s