Wieso liefert ein Perl-Datenbankzugriff auf YARD-Datenbank keine Fließkommazahlen?
Hi,
in Perl bin ich leider ziemlicher Anfänger, trotzdem habe ich ein Programm zum Laufen bekommen, das Daten aus einer Datenbank in einem Formular darstellt. Wenn da nur nicht die Fließkommazahlen wären. Statt derer bekomme ich nur Murks.
Eigentlich eine Allerweltsaufgabe:
Einen Datensatz aus der Datenbank holen und den Inhalt in ein Formular schreiben:
#!/usr/bin/perl -w
use CGI;
use DBI;
$dbh = DBI->connect('DBI:YARD:xxx','xxxx','xxxx');
#Dann
$sth->bind_col(1, \$col1, {TYPE => SQL_INTEGER});
$sth->bind_col(14, \$col14, {TYPE => SQL_DOUBLE});
$sth->fetch;
#Oder auch
@row_ary=$sth->fetchrow_array();
$col14=$row_ary[14];
Bei beiden Varianten (und noch ein paar weiteren) kriege ich bei Ganzzahlen und Strings korrekte Ergebnisse. Bei Fließkommazahlen (double) kriege ich aber falsche Zahlen, und zwar konsequent immer die selbe (egal welches Feld oder welcher Datensatz).
Nach frischem Aufsetzen auf einem Testrechner dachte ich erst "hurra", aber dann kam die Ernüchterung: Hier war die Zahl immer 0,0.
Verwendet wird aus Kompatibilitätsgründen YARDSQL 4.
Bevor ich die Ochsentour fahre und die jeweils gewünschten Daten von einem C-Programm in eine Datei quetschen lasse: Habt ihr eine Idee, woran es liegen könnte?
Danke im Voraus und Gruß
MichaelKBS
in Perl bin ich leider ziemlicher Anfänger, trotzdem habe ich ein Programm zum Laufen bekommen, das Daten aus einer Datenbank in einem Formular darstellt. Wenn da nur nicht die Fließkommazahlen wären. Statt derer bekomme ich nur Murks.
Eigentlich eine Allerweltsaufgabe:
Einen Datensatz aus der Datenbank holen und den Inhalt in ein Formular schreiben:
#!/usr/bin/perl -w
use CGI;
use DBI;
$dbh = DBI->connect('DBI:YARD:xxx','xxxx','xxxx');
- $type_info_all = $dbh->type_info_all;
#Dann
$sth->bind_col(1, \$col1, {TYPE => SQL_INTEGER});
$sth->bind_col(14, \$col14, {TYPE => SQL_DOUBLE});
$sth->fetch;
#Oder auch
@row_ary=$sth->fetchrow_array();
$col14=$row_ary[14];
Bei beiden Varianten (und noch ein paar weiteren) kriege ich bei Ganzzahlen und Strings korrekte Ergebnisse. Bei Fließkommazahlen (double) kriege ich aber falsche Zahlen, und zwar konsequent immer die selbe (egal welches Feld oder welcher Datensatz).
Nach frischem Aufsetzen auf einem Testrechner dachte ich erst "hurra", aber dann kam die Ernüchterung: Hier war die Zahl immer 0,0.
Verwendet wird aus Kompatibilitätsgründen YARDSQL 4.
Bevor ich die Ochsentour fahre und die jeweils gewünschten Daten von einem C-Programm in eine Datei quetschen lasse: Habt ihr eine Idee, woran es liegen könnte?
Danke im Voraus und Gruß
MichaelKBS
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 170616
Url: https://administrator.de/contentid/170616
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
1 Kommentar