Salve Forumsleser,
Eine Select-Abfrage macht Probleme. Ich seh natürlich keinen Fehler in der Syntax. :-(
Hier die Konsolen Ein- und Ausgabe:
---------------------------------------------------------------------------
Bitte gesuchte Kundennummer eingeben :100100
DBD::CSV::st execute failed: Can't call method "column" on an undefined value at /usr/local/share/perl/5.10.0/SQL/Statement/Term.pm line 199, <GEN0> line 1.
[for Statement "SELECT * FROM kunden WHERE kd-nummer LIKE '100100'"] at ./EZ-DVP.pl line 486.
---------------------------------------------------------------------------
Perlcode:
%zuordnung=(
kunden => {
file => 'kunden.csv',
col_names => ['kd-nummer', 'kd-datum', 'kd-firma', 'kd-strasse', 'kd-hausnummer', 'kd-plz', 'kd-ort', 'kd-land', 'kd-ansprechpartner', 'kd-telefon', 'kd-fax', 'kd-email'],
},
);
# Verbindung aufbauen
$dbh = DBI->connect("DBI:CSV:", undef, undef, {
# Zeilenseparator
csv_eol => "\x0A",
# Spaltenseparator:
csv_sep_char => ",",
# Verzeichnis mit den Dateien
f_dir => $Bin,
# Zuordnung Dateiname -> Tabelle
csv_tables => \%zuordnung,
# bei Fehlern immer sterben:
RaiseError => 1,
}
) or die($DBI::errstr);
$sth=$dbh->prepare("SELECT * FROM kunden WHERE kd-nummer LIKE '$kdnummer'");
$sth->execute();
print qq($sth)."\n";
$sth->finish();
$dbh->disconnect();
Und ein paar Testzeilen der CSV:
--------------------------------------------------------------------------------
"kd-nummer","kd-datum","kd-firma","kd-strasse","kd-hausnummer","kd-plz","kd-ort","kd-land","kd-ansprechpartner","kd-telefon","kd-fax","kd-email"
100100,20120917,MaxTech,Musterstrasse,11,79576,"Weil am Rhein",D,"Herr Müller",123456,123456,service@maxtech.de
100100,20120917,Testshop,Testweg,13,79618,Rheinfelden,D,"Frau Tester",123456,1234567,test@tester.de
100100,20120917,kjhkjh,lkjlkj,45,78987,ölkölk,D,"Herr Lölle",321,654,654@mnbmn.de
100101,20120917,Blabla,Bluppstr.,654,98765,Dackelburg,D,"Frau Gnies",321321,321321,sfd@dgd.de
100102,20120917,ffgh,fghfh,fghfgh,fhfgh,fghfgh,fghf,fghfhfh,4646,645656,45ghjghjg21ghj
--------------------------------------------------------------------------------
Das $kdnummer hat er in der Fehlerausgabe umgewandelt in die Kundennummer 100100. Das geht. Scheint ein Select problem zu sein? Geht Select bei CSV womöglich gar nicht?
Für Ratschläge dankbar...
Grus HP-User