Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
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>​