Jak połączyć się z bazą danych MSSQL przy użyciu modułu DBI Perla w systemie Windows?Jak połączyć się z bazą danych MSSQL przy użyciu modułu DBI Perla w systemie Windows?
Odpowiedz
Użyj DBD :: ODBC. Jeśli po prostu utworzysz źródło danych za pomocą Panelu sterowania -> Zarządzanie systemem -> Źródła danych ODBC -> Systemowe źródło danych lub Źródło danych użytkownika (to są imiona, które pamiętam, ale moje XP nie jest w języku angielskim, więc nie można sprawdzić), wszystko co musisz zrobić, to użyć nazwy tego źródła danych w ciągu połączenia DBI.
my $dbh = DBI->connect("dbi:ODBC:$dsn", $user, $pwd, \%attr);
Różnica między źródłem danych użytkownika i systemu polega na tym, że ten ostatni może być użyty przez dowolnego użytkownika.
Zobacz także: HOW TO: Create a System Data Source Name in Windows XP
Nie można znaleźć nigdzie niezawodnego. Użyj kodu Perla podobnego do
use DBI;
my $dbs = "dbi:ODBC:DRIVER={SQL Server};SERVER={ServerName}";
my ($username, $password) = ('username', 'password');
my $dbh = DBI->connect($dbs, $username, $password);
if (defined($dbh))
{
#write code here
$dbh->disconnect;
}
else
{
print "Error connecting to database: Error $DBI::err - $DBI::errstr\n";
}
Sprawdzanie Perlmonks widzę sugestię faktycznie należy użyć sterownika Sybase DBI do łączenia się z MS SQL. Co ma sens, biorąc pod uwagę, że MS SQL ma swoje korzenie w kodzie Sybase. ODBC też działa, oczywiście.
Korzystanie z OLEDB Bezpieczeństwa (Integrated Windows Authentication):
DBI:ADO:Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=localhost;Initial Catalog=$dbName;