Я знаю, что есть аналогичный вопрос: Connect to SQL Server 2005 from Perl and do a SELECT, но я пробовал принятый ответ и не могу заставить его работать.Как подключиться к SQL Server с perl
Предполагая, что у меня есть тест БД с именем, и хотел бы, чтобы сделать выбор из туЬаЫе (select id, name from mytable
)
кодекса по ссылке выше, с обновленным DSN:
use strict;
use warnings;
use DBI;
# Insert your DSN's name here.
my $dsn = 'database=test'
# Change username and password to something more meaningful
my $dbh = DBI->connect("DBI::ODBC::$dsn", 'username', 'password')
# Prepare your sql statement (perldoc DBI for much more info).
my $sth = $dbh->prepare('select id, name from mytable');
# Execute the statement.
if ($sth->execute)
{
# This will keep returning until you run out of rows.
while (my $row = $sth->fetchrow_hashref)
{
print "ID = $row->{id}, Name = $row->{name}\n";
}
}
# Done. Close the connection.
$dbh->disconnect;
Это то, что я при запуске скрипта: Не удается подключиться к источнику данных «ODBC :: database = test», потому что я не могу решить, какой драйвер использовать (он, похоже, не содержит префикса 'dbi: driver:' и DBI_DR IVER env var не установлен) в строке script.pl 9
Похоже, проблема в dsn, но я понятия не имею, как это исправить (я на sql 2005, активный perl 5.10 и windows xp).
Редактировать: Я использовал следующий код, чтобы проверить, установлен ли ODBC. использовать DBI;
print join (", ", DBI->installed_versions);
Выход: Похоже, ODBC действительно в списке.
ADO, CSV, DBM, ExampleP, File, Gofer, ODBC, SQLite, Sponge, mysql
Что мне не хватает?
У вас установлен DBD :: ODBC? – mopoke
Да, у меня есть DBD :: ODBC instaleld. Проверенные. –
Любые предложения? –