Hallo GwenDragon,
ich frage von einem lokalen Linuxsystem einen lokalen MSSQL Server ab.
Perl Minimalcode:
#!/usr/bin/perl
use 5.28.1;
use strict;
use warnings;
use DBI;
my $dsn = 'dbi:ODBC:DRIVER={ODBC Driver 18 for SQL Server};TrustServerCertificate=yes;database=xxx;Server=xxx);
my $dbh = DBI->connect($dsn, xxx, xxx) || die 'Verbindung zur Datenbank nicht möglich';
my $erg = $dbh->selectrow_hashref('SELECT TOP 1 * FROM [Purchase Line]');
for my $key (sort keys %$erg){
say $key.' - '.$erg->{$key};
}
=> Fehlerhafte Ausgabe
- AuftragsbestätigungGutschriftsart
- Gutschriftsart
...
Ich habe mir gerade ein PHP-Skript zusammengegoogelt, welches den gleichen MS ODBC Treiber benutzt.
Die Feldnamen werden korrekt ausgegeben:
- Auftragsbestätigung
- Gutschriftsart
...
<?php
$user = "xxx";
$password = "xxx";
$dsn = 'DRIVER={ODBC Driver 18 for SQL Server};TrustServerCertificate=yes;database=xxx;Server=xxx';
$connection = odbc_connect($dsn, $user, $password);
$RecordSet = odbc_exec($connection, 'SELECT TOP 1 * FROM [Purchase Line]');
for($i=1; $i <= odbc_num_fields($RecordSet); $i++ )
echo odbc_field_name($RecordSet, $i)."\n";
odbc_close($connection);
?>
Meine Vermutung ist jetzt eher ein BUG in der DBD::OBDC
DBI V1.643
DBD::ODBC V1.61
Last edited: 2023-07-22 10:42:07 +0200 (CEST)