Невозможно получить несколько записей, используя DBD :: ODB C in Perl - PullRequest
0 голосов
/ 16 апреля 2020

Выполнил хранимую процедуру вручную, которая извлекает 45 записей, где при выполнении ее с помощью сценария ниже perl она выбирает только одну запись, и эта запись не является верхней или последней записью из 45 записей. Что не так в приведенном ниже коде

Платформа : Windows База данных : MS SQL SERVER

**Program**:

use strict;
use DBI;
use DBD::ODBC;


print "Trying to connect\n";

my $server_name = "XXXXXXXX";
my $server_port = 'NNNN';
my $database_name = 'XXXXX';
my $database_user = 'XX';
my $database_pass = 'XXXXX';
my $dbh = DBI->connect("dbi:ODBC:DSN=sql_test", $database_user, $database_pass)
  || die "Couldn't open database: $DBI::errstr\n";
my $sql = $dbh->prepare("Exec sp_listUsers '25329601','1'");
my $more_results;
$sql->execute();
my $results_ref;
my @array;
do
{
   print "getting results\n";
   my $names = $sql->{NAME}->[0];
   print "names $names\n";
   while ($results_ref = $sql->fetchrow_hashref())
   {
      print "test $results_ref->{'user_id'}\n";
print join (", ", values %$results_ref), "\n";
      push (@array, $results_ref->{'user_id'});
      #print "row $results_ref\n";
    }

}while($more_results = $sql->{odbc_more_results});

foreach my $val (@array)
{
   print "user id $val\n";
}
$dbh->disconnect();
...