DBD::ODBC編
DBD::ODBCのインストール
#perl -MCPAN -e shell cpan> install DBD::ODBC --20:01:22-- ftp://ftp.perl.org/pub/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.15.tar.gz (試行: 9) => `-' ftp.perl.org|163.143.1.21|:21 に接続しています... 接続しました。 anonymous としてログインしています... サーバの応答にエラーがあるので、接続を終了します。 再試行しています。
あれ?失敗
■接続先URLを追加して実行(以下でいけるらしい)
cpan> o conf cpan> o conf urllist push 追加したい url名 cpan> o conf commit
◎追加するURLは
「http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.15.tar.gz」
cpan使っても一回install
#perl -MCPAN -e shell cpan> install DBD::ODBC
◎警告はわさわさ出たけど入ったから次へ。
7.接続テストスクリプト作成
# vim odbc.pl -- #!/usr/bin/perl use strict; use DBI; use Data::Dumper; my $dbh = DBI->connect('dbi:ODBC:freetds', 'username', 'passwd') or die $!; my $sth = $dbh->prepare("select top 10 * from test_table") or die $dbh->errstr; $sth->execute or die $dbh->errstr; while (my $arrayref = $sth->fetchrow_arrayref) { print Dumper $arrayref; } $sth->finish; $dbh->disconnect;
8.接続テストスクリプト実行
# perl odbc.pl DBI connect('freetds','username',...) failed: [unixODBC][Driver Manager]Data source name not found, and no default driver specified (SQL-IM002) at odbc.pl line 7 Died at odbc.pl line 7.
エラー
データソースの設定がミスってますって怒られています。
ここからしばらくデバッグの経緯です。(省きたい人はすっとばしてください。)
■ドライバの一覧を確認してみます
odbc.pl に以下の記述を追加して実行
my @ary = DBI->available_drivers; print Dumper(\@ary); ------実行結果------- #perl odbc.pl $VAR1 = [ 'DBM', 'ExampleP', 'File', 'ODBC', ←いました。 'Pg', 'Proxy', 'Sponge' ];
■ODBCの一覧を見てみます
my @ary = DBI->data_sources('ODBC'); print Dumper(\@ary); ------実行結果------- #perl odbc.pl $VAR1 = [];
からっぽです。
■今どの設定ファイルみてるのかを調べる
#odbcinst -j unixODBC 2.2.11 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini USER DATA SOURCES..: /root/.odbc.ini
↑こんな結果です。
どうやら「/etc/odbc.ini」を見ているようです。
設定をこちらに書いてみます。
■再実行結果
#perl odbc.pl $VAR1 = [ 'dbi:ODBC:freetds' ];
とれました。
■再度perl実行
# perl odbc.pl
できたーーーーー!!!
・゚・(つД`)・゚・値がとれましたー!!
↑ここまではasciiだけのテーブルが対象でした。