Schrift
[thread]850[/thread]

CGI+HTML+DB durchsuchen+TXT generieren (Seite 2)



<< |< 1 2 3 4 5 ... 9 >| >> 85 Einträge, 9 Seiten
renee
 2006-12-06 20:41
#9147 #9147
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Na, der Code oben wird ja wohl nicht vollständig sein, oder? Da fehlen die Subs
* Eintragen
* Startseite
* ConnectToDB

Also da würde strict schon meckern...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lolipop 999
 2006-12-06 21:08
#9148 #9148
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
Hallo

Hier der neue Code:

Code: (dl )
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
#! f:/Perl/bin/perl -w

use strict;
use CGI qw(:standard);
use DBI;
my $dbh = DBI->connect('DBI:ODBC:Kunden');

my $cgi = CGI->new();
my %params = $cgi->Vars();

print $cgi->header();

# oder besser, wenn Readonly vorhanden ist:
# use Readonly $CsvPath => 'c:/Programme/ApacheGroup/Apache/cgi-bin';

if ( exists $params{suchanfrage} ) { &Suche ($cgi, \%params) }
elsif( exists $params{eintrag} ) { &Eintragen($cgi, \%params) }



print $cgi->end_html();

# ------------------------------------------------------------

sub Suche {
my ($cgi, $params) = @_;

my $dbh = &ConnectToDB();

$cgi->start_html('Antwort');

my $sqlStatement = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle2 JOIN Tabelle1
WHERE Tabelle2.Kundennummer = Tabelle1.Kundennummer~;

my $sth = &FireSql($dbh, $sqlStatement);

if ($sth->rows < 1) {
print $cgi->p("Keine Daten gefunden");
return;
} # if

print qq~
<center>
<h1>Suchergebnis:</h1>
<hr />
<table border="2">
<tr>
<td width="200"><b>Kundennummer:</b></td>
<td width="200"><b>Adresse:</b></td>
<td width="200"><b>Name:</b></td>
<td width="200"><b>Telefonnummer:</b></td>
<td width="200"><b>Rechnungsbetrag:</b></td>
</tr>\n~;

while( my @data = $sth->fetchrow() ) {
printf qq~
<tr>
<td><b>%s</b></td>
<td><b>%s</b></td>
<td><b>%s</b></td>
<td><b>%s</b></td>
</tr>\n~,
@data[0, 1, 2, 3];

} # while

$sth->finish();
$dbh->disconnect();
} # Suche ======>>> LINE 71
# ------------------------------------------------------------
sub Eintragen {


} # Eintragen
# ------------------------------------------------------------
sub ConnectToDB {

my $dsn = "DBI:CSV:Kunden.mdb=$CsvPath";
my $dbh = DBI->connect($dsn)
or die "Error: couldn't connect to '$dsn': $DBI::errstr\n";

return $dbh;
} # ConnectToDb
# ------------------------------------------------------------
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

# ------------------------------------------------------------


und hier die Fehler meldungen


install_driver(ODBC) failed: Can't locate DBD/ODBC.pm in @INC (@INC contains: F:/Perl/site/lib F:/Perl/lib .) at (eval 4) line 3.
Perhaps the DBD::ODBC perl module hasn't been fully installed,
or perhaps the capitalisation of 'ODBC' isn't right.
Available drivers: CSV, DBM, ExampleP, File, Mock, Proxy, SQLite, Sponge.
at F:/Apache2/cgi-bin/daba71.pl line 6

Premature end of script headers: daba71.pl

danke für die Hilfe

lolipop 999
renee
 2006-12-06 23:16
#9149 #9149
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du musst CPAN:DBD::ODBC Wiki:installieren...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
topeg
 2006-12-07 06:42
#9150 #9150
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ich würde mal vorschlagen das mit in den Code auf zu nehmen:
Code: (dl )
use CGI::Carp qw/fatalsToBrowser/;

Damit werden alle Fehlermeldungen auf dem Browser ausgegeben, ansonsten bekommst du nur die Serverabbruchmelung und die ist nicht gerade aussagekräftig.
(Aber ich vermute, dass du den Code lokal in der Shell ausführts, oder? Dann wäre mein Vorschlag kontraproduktiv).

Dein Code verwirrt mich. Einerseits erzeugst du eine globale Variable "dbh", in welche du ein DBI-Objekt stecken willst, und dann überschreibst du es lokal in der Funktion "Suche" mit einem anderen, bei dem du das falsche "DBI:CSV:Kunden.mdb=$CsvPath" benutzt, wobei die globale Variable "$CsvPath" garnicht existiert. (wenn du "use strict;" verwendest sollte das allein schon eine Fehlermeldung geben.)

Wenn du Das Modul "DBD::ODBC" installiert hast solltest du den Aufruf doch mit Name und Passwort machen.
MisterL
 2006-12-07 22:44
#9151 #9151
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Nur als kleine Anregung:
bei Problemen mit CGI und Datenbanken sollte man den Kontext mitangeben. Das wäre hier z.B. Windows (welches ?), Perl (welche Version ?), den Server im Hintergrund (Apache, aber welche Version ?) und den verwendeten Datenbanktyp (hier Access)

Und vielleicht noch ein paar Punkte mehr, die ich vergessen habe aufzuzählen ... ;-)

mfg MisterL
“Perl is the only language that looks the same before and after RSA encryption.”
lolipop 999
 2006-12-08 12:53
#9152 #9152
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
Leider kann ich DBD::ODBC nicht über CPAN installieren
auch nicht über den Packmanager, weil er keines findet

kann mir wer helfen


danke lolipop 999
GwenDragon
 2006-12-08 13:46
#9153 #9153
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
[quote=lolipop 999,08.12.2006, 11:53]Leider kann ich DBD::ODBC nicht über CPAN installieren
auch nicht über den Packmanager, weil er keines findet[/quote]
Kann nicht sein.
Sowohl auf ActiveStates Repos als auch bei TheoryX5 sind DBD-ODBC zu finden.

PPM starten
s ODBC eingeben

Ich kann jedenfalls DBD-ODBC finden

Ich verwende für Perl 5.6 und 5.8 auch die Repostitory von bribes.org und TheoryX5\n\n

<!--EDIT|GwenDragon|1165579370-->
lolipop 999
 2006-12-08 13:57
#9154 #9154
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
jab ich verwende 5.8

werde dann halt gleich 5.6 installeiren
renee
 2006-12-08 14:03
#9155 #9155
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Oder mal warten, vielleicht stellt Randy Kobes in den nächsten Stunden eine Distribution ins Repository. Ich habe mal angefragt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-12-08 14:06
#9156 #9156
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Quote
http://www.bribes.org/perl/ppm, for the www.bribes.org Perl 5.6 repository
http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer, for the uwinnipeg Perl 5.6 repository
http://www.bribes.org/perl/ppm, for the www.bribes.org Perl 5.8 repository
http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58 (ActivePerl Build < 819) / http://theoryx5.uwinnipeg.ca/ppms/ (ActivePerl Build >= 819), for the uwinnipeg Perl 5.8 repository


Also ich bekomm sowhl mit PPM3 (aktuelle Perl 5.6) als auch PPM4  (aktuelle Perl 5.8) die DBD-ODBC 1.13 herunter geladen.\n\n

<!--EDIT|GwenDragon|1165579807-->
<< |< 1 2 3 4 5 ... 9 >| >> 85 Einträge, 9 Seiten



View all threads created 2006-12-03 10:38.