Thread MSSQL SELECT * liefert falsche Feldnamen (28 answers)
Opened by stefan at 2023-07-21 11:01

Gast Stefan
 2023-07-22 10:23
#195160 #195160
Hallo GwenDragon,

ich frage von einem lokalen Linuxsystem einen lokalen MSSQL Server ab.

Perl Minimalcode:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/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
...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
<?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)

View full thread MSSQL SELECT * liefert falsche Feldnamen