Thread Platzierung Pfadangabe bei DBD unklar (18 answers)
Opened by geloescht at 2012-09-15 00:25

topeg
 2012-09-15 17:49
#161812 #161812
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
2012-09-15T13:47:40 ?
Hab dein Programm zum üben verwendet

Dafür ist es gedacht.

2012-09-15T13:47:40 ?
Code (perl): (dl )
1
2
 col_names   => [qw(
        Name Address Floors Donated last year Contact

Frage: Keine Trenner bei "Donated last year"? Seh ich das richtig, dass hier die Spaltenköpfe der CSV-Datei einzutragen sind?

Das wird so nicht funktionieren qw(...) bedeutet "Quoted by Whitespaces" und gibt eine Liste zurück. Leerzeichen sind hier die Tenner der Liste Donated last year wird zu ('Donated','last','year')
wenn du Spaltennamen mit Leerzeichen hast, dann musst die die lange Schreibweise benutzen:
Code (perl): (dl )
1
2
3
      col_names   => [ 
        'Name', 'Address', 'Floors', 'Donated last year', 'Contact'
      ],


2012-09-15T13:47:40 ?
Zeile 24-33 deines Codes: Schon wieder foo bar und bam. Sind das Platzhalter? Wenn ja für was?

Ja "foo", "bar", "bam" sind allgemeinbräuchliche "Leerwörter" die als Platzhalter variablen, Namen, Funktionen, oder Attribute stehen. Hier sollen sie nur demonstrieren wie man mehrere Dateien in einer DB verwenden kann. Du kannst es einfach weg lassen, wenn du nur eine Datei hast, oder an deine Wünsche anpassen, wenn du mehrere Dateien hast.
2012-09-15T13:47:40 ?
Zeile 10-12: Um das Verzeichnis mit dem zu Script finden. Das Perl-Programm, oder das DBI Programm? Oder Das DBD Programm? Was wird hier gesucht?

Code (perl): (dl )
1
2
3
# Verzeichnis mit dem Script finden.
# "." muss nicht immer das Verzeichnis mit dem Script sein
use FindBin '$Bin';


DBI oder DBD::CSV sind Module, die von Perl selbständig gesucht und die nötigen Pfade gefunden werden.
Das "use FindBin '$Bin';" bezieht sich auf das Script, das du schreibst, bzw. startest.
Mit dem angeängteh '$Bin' wird eine Variable $Bin erzeugt, die den Pfad zum Verzeichnis enthält, in dem sich das Script befindet.

2012-09-15T13:47:40 ?
Code (perl): (dl )
my $dbh = DBI->connect("dbi:CSV:", undef, undef,

Warum steht hier ("dbi:CSV:") das DBI in kleinen Buchstaben? Ist das ein Fehler?

Wenn es nicht funktioniert ist es ein Tippfehler von mir, wenn es funktioniert, dass ist die Angabe CaseInsensitive. :-)

2012-09-15T13:47:40 ?
Was bedeutet undef (klar undefiniert, aber was ist undefiniert?

Die Kurze Variante:
Das ist so Spezifiziert.
Die Lange Variante:
DBI->connect(...) braucht vier Parameter, damit der letzte Parameter korrekt erkannt wird. Ist der Zweit und Dritte mit Werten belegt wird der Vierte nicht vollständig ausgewertet. Um sicher zu stellen, das die eingesetzten Werte genutzt werden, setzt man die nicht gebrauchten variablen auf undef.

View full thread Platzierung Pfadangabe bei DBD unklar