2023-07-21T15:59:19 GwenDragonDas ist aber Microsofts MSSQL-Server.
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};
}
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);
?>
QuoteSehe ich auch so, denn die Spaltennamen werden falsch zurück geleifert.Meine Vermutung ist jetzt eher ein BUG in der DBD::OBDC
Guest stefanIch habe bei dem Problem noch eine Beobachtung gemacht:
Lege ich das Script in cgi-bin und rufe es über Apache auf,
kommen die Feldnamen korrekt.
Wie kann das denn sein???
Außerdem muss das script in latin1 vorliegen.
Bei utf8 (mit oder ohne "use utf8")
fürt ein Umlaut in der SQL zu einem SQL-Fehler z.B. "Invalid column name 'Auftragsbestätigung'"