====== 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