Ich benutze Perl 5.16.3, DBD :: ODBC 1.47, Unix-ODBC-2.2.11, freetds 0,91Perl, ODBC, SQL-Server, zurückgegeben drucken Nachrichten in falscher Reihenfolge
ich das kleine Programm unten erstellen, führen Sie es und erhalten die Ausgabe:
[unixODBC][FreeTDS][SQL Server]Third
[unixODBC][FreeTDS][SQL Server]Second
[unixODBC][FreeTDS][SQL Server]First
Warum sind die Zeilen in umgekehrter Reihenfolge? Ich habe TDSDUMP eingestellt und in der Logdatei nachgesehen, als ob die Zeilen in der richtigen Reihenfolge an mich gesendet werden.
Die getesteten Code ist:
use strict;
use DBI qw(:sql_types);
use DBD::ODBC qw(:diags);
my $dbh = DBI->connect("DBI:ODBC:database", "USER", "SECRET");
$dbh->{odbc_err_handler} = \&ODBCMsgHandler;
$dbh->do("use asra_jkp");
my $statement = "CREATE PROCEDURE testprint AS print 'First' print 'Second' print 'Third'";
$dbh->do($statement);
$statement = "EXEC testprint";
$dbh->do($statement);
$statement = "DROP PROCEDURE testprint";
$dbh->do($statement);
sub ODBCMsgHandler {
my ($state, $msg, $native, $rc, $status) = @_;
print "$msg\n";
}
EDIT:
ich auf einer anderen Maschine versucht, mit Perl 5.18.2 und DBD :: ODBC 1.50. Auf dieser Maschine erscheinen die Druckanweisungen in der richtigen Reihenfolge.