Как подключиться к базе данных MSSQL с помощью Perl DBI-модуля в Windows?

Как подключиться к базе данных MSSQL с помощью Perl DBI-модуля в Windows?

Ответ 1

Использовать DBD:: ODBC. Если вы просто создаете источник данных с помощью панели управления → Управление системой → Источники данных ODBC → Источник данных системы или Пользовательский источник данных (это имена, которые я помню, но мой XP не на английском языке, поэтому я не могу проверить), то все, что вам нужно сделать, это использовать имя этого источника данных в строке подключения DBI.

my $dbh = DBI->connect("dbi:ODBC:$dsn", $user, $pwd, \%attr);

Разница между источником данных User и System заключается в том, что последний может использоваться любым пользователем.

См. также: КАК: Создать имя источника системных данных в Windows XP

Ответ 2

Невозможно найти это где-нибудь надежным. Используйте Perl-код, похожий на

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";
}

Ответ 3

Проверка Perlmonks, я вижу, что предложение действительно использовать драйвер базы данных Sybase для подключения к MS SQL. Это имеет смысл, учитывая, что MS SQL имеет свое происхождение в коде Sybase. ODBC тоже работает, конечно.

Ответ 4

Использование OLEDB со встроенной безопасностью (проверка подлинности Windows):

DBI:ADO:Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=localhost;Initial Catalog=$dbName;