CentOS
Code Block |
---|
|
sudo yum install freetds unixODBC unixODBC-devel
wget http://pkgs.repoforge.org/perl-DBD-ODBC/perl-DBD-ODBC-1.23-1.el6.rf.x86_64.rpm
sudo rpm -ivh perl-DBD-ODBC-1.23-1.el6.rf.x86_64.rpm |
проверяем установлен ли модуль, если нет сообщения об ошибке - значит модуль установлен
Code Block |
---|
|
perl -e 'use DBD::ODBC;' |
проверяем версию модуля
Code Block |
---|
|
perl -MDBD::ODBC -e 'print $DBD::ODBC::VERSION;' |
драйвер к базе MSSQL FreeTDS
Code Block |
---|
|
wget ftp://ftp.astron.com/pub/freetds/stable/freetds-0.91.103.tar.gz
tar zxvf freetds-0.91.103.tar.gz
cd freetds-0.91.103
./configure --prefix=/usr/local/freetds --enable-msdblib
make
make install
cp include/tds.h /usr/local/freetds/include
cp src/tds/.libs/libtds.a /usr/local/freetds/lib
echo "/usr/local/freetds/lib" >> /etc/ld.so.conf
echo "export FREETDSCONF=/usr/local/freetds/etc/freetds.conf" >> /etc/profile
ln -s /usr/local/freetds/lib /usr/local/freetds/lib64 |
поиск установленной библиотеки
Code Block |
---|
|
sudo updatedb
locate libtdso
/usr/local/freetds/lib/libtdsodbc.so.0
/usr/local/freetds/lib/libtdsodbc.so.0.0.0 |
Code Block |
---|
|
echo "[FreeTDS]
> Description = FreeTDS
> Driver = /usr/local/freetds/lib/libtdsodbc.so.0" >> tds.driver.template |
подключение ODBC
Code Block |
---|
|
sudo odbcinst -i -d -f tds.driver.template |
при успешном подключении
Code Block |
---|
|
odbcinst: Driver installed. Usage count increased to 1.
Target directory is /etc |
проверяем успешность подключения
Code Block |
---|
|
odbcinst -q -d |
вывод команды
Code Block |
---|
|
[PostgreSQL]
[MySQL]
[FreeTDS] |
настройка ODBC MS SQL
Code Block |
---|
|
sudo su -
echo "[MSSQL]
Driver = FreeTDS
Address = IPADDRESSOFMSSQL
Port = 1433
TDS_Version = 8.0
Database = MYDATABASENAME" >> /etc/odbc.ini |
Тестируем ODBCconnect к MSSQL базе
Code Block |
---|
|
isql -v -s MSSQL SQLUSERNAME SQLUSERPASSWORD |
вывод
Code Block |
---|
|
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> |
пример перл программы
Code Block |
---|
|
#!/usr/bin/perl
use DBI;
use strict;
use DBI;
my @dsns = DBI->data_sources('ODBC');
foreach my $d (@dsns)
{
print "$d\n";
}
my $dbh = DBI-> connect('dbi:ODBC:DSN=MSSQL;UID=SQLUSERNAME;PWD=SQLUSERPASSWORD') or die "CONNECT ERROR! :: $DBI::err $DBI::errstr $DBI::state $!\n";
if ($dbh)
{
print "There is a connection\n";
my $sql = q/SELECT * FROM dbo.users/;
my $sth = $dbh->prepare($sql);
$sth->execute();
my @row;
while (@row = $sth->fetchrow_array) { # retrieve one row at a time
print join(", ", @row), "\n";
}
$dbh->disconnect;
} |