我知道有一個類似的問題:Connect to SQL Server 2005 from Perl and do a SELECT,但我試過接受的答案,我無法讓它工作。如何連接SQL Server與Perl
假設我有一個數據庫名爲test,並會喜歡從MYTABLE (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 2009-12-23 00:46:40
是的,我有DBD :: ODBC instaleld。驗證。 – 2009-12-23 17:23:30
有什麼建議嗎? – 2009-12-23 22:05:56