Thread Memo-Feld aus Datenbank einlesen
(10 answers)
Opened by Stefan_S at 2016-08-25 13:37
Servus,
unsere Warenwirtschaft verwendet eine Sybase-Datenbank. Auf diese Datenbank habe ich per ODBC Lesezugriff. Mit nachstehendem Code lese ich (hier verkürzt) Artikelstammdaten aus. Code (perl): (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 #!C:/Strawberry/perl/bin/perl use strict; use warnings; # Verbindung zur Datenbank use DBI; # Variablen definieren - Datenbank my $dbs_user = 'ODBCLX'; my $dbs_pw = 'xxxxxxx'; my ($dbs, $dbs_result, $statement); # Datenbankverbindungen herstellen $dbs = DBI->connect('DBI:ODBC:LXSYDSN',$dbs_user,$dbs_pw) or die "Couldn't connect to database:" . DBI->errstr; # Artikel einlesen und anzeigen my ($artikel_nr, $bezeichnung, $beschreibung, $bestand) = undef; $statement = "SELECT ArtikelNr, Menge_bestand, Bezeichnung FROM IQF3.FK_Artikel WHERE ArtikelNr = 'AGI01090'"; $dbs_result = $dbs->prepare ( qq {$statement} ); $dbs_result->execute(); while (($artikel_nr, $bestand, $bezeichnung, $beschreibung) = $dbs_result->fetchrow_array()) { print "\$artikel_nr\t: $artikel_nr\n"; print "\$bestand\t\t: $bestand\n"; print "\$bezeichnung\t: $bezeichnung\n"; print "\$beschreibung\t: "; if (defined $beschreibung) { print "$beschreibung"; } print "\n"; } Die Ausgabe sieht so aus: Code: (dl
)
1 $artikel_nr : AGI01090 Wenn ich nun in Zeile 19 das Feld 'Beschreibung' in der Quelle ergänze: Code (perl): (dl
)
$statement = "SELECT ArtikelNr, Menge_bestand, Bezeichnung, Beschreibung FROM IQF3.FK_Artikel WHERE ArtikelNr = 'AGI01090'"; erhalte ich folgende Fehlermeldung: Code: (dl
)
DBD::ODBC::st fetchrow_array failed: [Sybase][ODBC Driver]Ung³ltige Zeichenfolgen- oder Pufferlõnge (SQL-HY090) at C:\...\test-memo.pl line 26. Mir ist aufgefallen, dass das Feld 'Beschreibung' in der Quelle als Feldtyp=Memo definiert ist, alle anderen Felder als Feldtyp=Text. Wie kann ich das Memofeld einlesen? Viele Grüße Stefan 25.08.16 Last edited: 2016-11-24 16:02:35 +0100 (CET) |