====== Perl을 이용하여 MS SQL Server 연동하기 ====== ===== Installation ===== ==== FreeTDS 설치하기 ==== === apt로 설치하기 === - freetds-common 과 freetds-dev 를 설치해 준다. # apt-get install freetds-common freetds-dev === source로 설치하기(순서) === - 다운로드 - 압축해제 - 사용자에 staff 권한 부여 - configure --with-tdsver=8.0 - make - make install ==== Sybase 펄모듈 설치하기 ==== - sybase 펄모듈 설치 \\ $ apt-get install libdbd-sybase-perl libdbd-odbc-perl ===== Configuration ===== - freetds.conf 파일은 연다. - 데비안 패키지인 경우에는 /etc/freetds/freetds.conf 이며, 소스로 설치되어 있을 경우에는 소스 설정 경로는 참조한다. - 필요한 경우에만 아래의 주석을 해제한다. try server login = yes try domain login = no tds version = 7.0 - 맨 아래 부분에 Microsoft SQL Server 설정을 한다. [admindb] host = 192.168.100.2 port = 1433 tds version = 8.0 - 설정이 정상적으로 되었는지 command-line 툴인 tsql 을 이용하여 확인한다. $ tsql -S admindb -U mssql_username $ tsql -S admindb -U mssql_username -P mssql_password ===== Example ===== - 샘플소스를 만들어보자 #!/usr/bin/perl use DBI; $dsn = 'DBI:Sybase:server=admindb'; my $dbh = DBI->connect($dsn, "mssql_username", "mssql_password"); die "unable to connect to server $DBI::errstr" unless $dbh; $dbh->do("use mssql_database"); $query = "SELECT * FROM scott"; $sth = $dbh->prepare ($query) or die "prepare failed\n"; $sth->execute( ) or die "unable to execute query $query error $DBI::errstr"; while ( @first = $sth->fetchrow_array ) { foreach $field (@first) { print "field: $field\n"; } } $dbh->disconnect; - [[develop:perl:oracle| DBI를 이용하여 Oracle 연동하기]] 도 참조해 보자. ===== FAQ ===== * 한글이 입력이 되지 않을 경우 freetds.conf 안의 tds version 을 4.2로 수정한다. [global] # TDS protocol version tds version = 4.2 ===== Reference ===== - http://www.freetds.org/ - http://www.perlmonks.org/?node_id=392385 - http://www.peppler.org/freeware/dbd-sybase.html