Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
abills:docs:manual:soft:perl_odbc [2014/12/11 11:07] asmodeus создано |
abills:docs:manual:soft:perl_odbc [2015/12/05 17:50] (текущий) |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
====CentOS==== | ====CentOS==== | ||
- | yum install unixODBC-devel | + | sudo yum install freetds unixODBC unixODBC-devel |
| | ||
- | wget http://pkgs.repoforge.org/perl-DBD-ODBC/perl-DBD-ODBC-1.23-1.el5.rf.i386.rpm | + | 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 | ||
+ | |||
+ | проверяем установлен ли модуль, если нет сообщения об ошибке значит модуль установлен | ||
+ | |||
+ | perl -e 'use DBD::ODBC;' | ||
+ | |||
+ | проверяем версию модуля | ||
+ | |||
+ | perl -MDBD::ODBC -e 'print $DBD::ODBC::VERSION;' | ||
+ | |||
+ | драйвер к базе MSSQL FreeTDS | ||
+ | |||
+ | 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 | ||
+ | |||
+ | поиск установленой библиотеки | ||
+ | |||
+ | sudo updatedb | ||
+ | locate libtdso | ||
+ | /usr/local/freetds/lib/libtdsodbc.so.0 | ||
+ | /usr/local/freetds/lib/libtdsodbc.so.0.0.0 | ||
+ | |||
+ | echo "[FreeTDS] | ||
+ | > Description = FreeTDS | ||
+ | > Driver = /usr/local/freetds/lib/libtdsodbc.so.0" >> tds.driver.template | ||
+ | |||
+ | подключение ODBC | ||
+ | sudo odbcinst -i -d -f tds.driver.template | ||
+ | |||
+ | при успешном подключении | ||
+ | |||
+ | odbcinst: Driver installed. Usage count increased to 1. | ||
+ | Target directory is /etc | ||
+ | |||
+ | проверяем успешность подключения | ||
+ | |||
+ | odbcinst -q -d | ||
+ | |||
+ | вывод команды | ||
+ | |||
+ | [PostgreSQL] | ||
+ | [MySQL] | ||
+ | [FreeTDS] | ||
+ | |||
+ | |||
+ | настройка ODBC MS SQL | ||
+ | |||
+ | sudo su - | ||
+ | echo "[MSSQL] | ||
+ | Driver = FreeTDS | ||
+ | Address = IPADDRESSOFMSSQL | ||
+ | Port = 1433 | ||
+ | TDS_Version = 8.0 | ||
+ | Database = MYDATABASENAME" >> /etc/odbc.ini | ||
+ | |||
+ | |||
+ | Тестируем ODBCconnect к MSSQL базе | ||
+ | |||
+ | isql -v -s MSSQL SQLUSERNAME SQLUSERPASSWORD | ||
+ | |||
+ | вывод | ||
+ | |||
+ | +---------------------------------------+ | ||
+ | | Connected! | | ||
+ | | | | ||
+ | | sql-statement | | ||
+ | | help [tablename] | | ||
+ | | quit | | ||
+ | | | | ||
+ | +---------------------------------------+ | ||
+ | SQL> | ||
+ | |||
+ | |||
+ | пример перл программы | ||
+ | |||
+ | <code> | ||
+ | |||
+ | #!/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; | ||
+ | } | ||
+ | </code> | ||