• ベストアンサー

WindowsXP + Perl + ODBCでDBにアクセスするには?

こんばんわ。早速質問させていただきます。 windowsXP上でActivePerlとODBCを使って、 windows2000サーバに接続するやり方がわかりません。 検索サイトでいろいろと調べてみたのですが、 UnixやLinuxでの接続の仕方は載っているのですが、 Windowsでのやり方は見つけることができませんでした。 サンプルコードなどを乗せていただくとわかりやすい のですが・・・。 よろしくお願い致します。

  • Perl
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

Windows環境でも、DBIとDBD::ODBCモジュールを使えば出来ます。 モジュールのインストールは、ActivePerlですと、コマンドプロンプト(DOSプロンプト)からPPMを使って簡単に行うことが出来ます。 例) ------------------------------------------------------------------ C:\>ppm PPM>install DBI ・ ・ ・ PPM>install DBD-ODBC ・ ・ ・ PPM>quit ---------------------------------------------------------------------- http://member.nifty.ne.jp/hippo2000/perltips/ppm.htm DBへの接続は下記の様な書式になります。 例) データソース名:DS1, ユーザ:usr1, パスワード:passwd1 -------------- use DBI; $dbh = DBI->connect('dbi:ODBC:DS1', 'usr1', 'passwd1'); ---------------------------------------------------------------------- http://perldoc.jp/docs/modules/DBD-ODBC-1.05/ODBC.pod 後はDBIのインターフェースで、DBへの操作が出来ます。 http://member.nifty.ne.jp/hippo2000/perltips/dbimemo.htm http://member.nifty.ne.jp/hippo2000/perltips/perlora.htm

参考URL:
http://perldoc.jp/docs/modules/DBD-ODBC-1.05/ODBC.pod
poporikomanaka
質問者

お礼

なるほど、よくわかりました。やってみようと思います。ありがとうございました。

関連するQ&A

  • ACCESSからのODBC接続について

    Windows2000サーバー上にあるアクセスファイル(別のOracle9サーバーにODBCリンクしている)をWindowsXpパソコンにコピーしましたが、「ODBC-xxxxへの接続が失敗しました」と表示されOracleデータを参照できません。 WindowsXpには、Oracleクライアントはインストール済み、DSNにもMicrosoft ODBC for Oracleを登録済みです。新規にODBCリンクすることは可能です。 エラーなく参照できるようにするにはどうすればいいでしょうか。

  • PerlとWin32::ODBCを使ってDBにアクセスするときに出るエラー

    こんばんわ。最近、Perlを使い始めたばかりの初心者です。解決方法がわからないので、教えて下さい。 PerlとWin32::ODBCを使ってDBにアクセスするプログラムを組んでいるます。DB接続まではうまくいくのですが、それ以降に以下のようなエラーがでます。モジュールが足りないようなのですが、どのようにして解決すればよいかわかりません。以下にエラーとコードを記入します。 コード: #!/usr/local/bin/perl $DSN = "DSN=DB1;UID=kaki388"; use Win32::ODBC; if (!($0 = new Win32::ODBC($DSN))){ print Win32::ODBC::Error(); print "失敗"; exit(); } print "成功"; $sql = "SELECT * FROM tbl1"; $0->run("$sql"); $0->sql("$sql"); @fn = $0->FieldNames(); while($0->FetchRow()){ undef %Data; %Data = $0->DataHash(); print "$Data{$fn[$i]}<BR>\n"; } $0->Close; エラーコード: 2004/08/26(11:49:14) W-SV 127.0.0.1 [80] E200042 "Can't locate object method "run" via package "Win32::ODBC=HASH(0x275020)" (perhaps you forgot to load "Win32::ODBC=HASH(0x275020)"?) at odbc.cgi line 11. " よろしくお願い致します。

    • ベストアンサー
    • Perl
  • ODBC接続でクライアントからDBに接続できない

    教えてください。 サーバーにAccessでクライアントから接続しようと思い、 ODBC接続をしていますが、接続できません。 過去の投稿に3306ポートの接続がとあり、 telnet サーバーIPアドレス 3306としましたが、 接続エラーとなり、3306ポートは塞がっているようです。 3306ポートを使用可能にするためにはどうすれば良いでしょうか? また、これに付随するアドバイスを頂ければ幸いです。 宜しくお願いします。 【環境】 ■サーバ側 OS:Windows2000Server DBMS:MySQL5.0.24 ■クライアント OS:WindowsXP ODBC:MySQL ODBC 3.51.17

    • ベストアンサー
    • MySQL
  • MYSQL ODBC接続について

    gentoo linux & MySQL4.0.25 を windows2000 & Access2000でODBC接続したいのですが、下記のエラーが表示されます。(MySQL ODBC 3.51.06ドライバ使用) Can't connect to MySQL server on ipアドレス(10061) windows側からsshでMySQLに接続できるのでネットワークに問題はありません。 ODBC接続に関して、windows側のみの設定でよいと認識しているのですが、linux側でも何か設定する必要があるのでしょうか? 自分なりにいろいろ調べたのですが、linux、MySQLともに初心者で理解に苦しんでいます。 ファイアウォール、Port3306が有効か無効か、調べるにはどうすればよいのでしょうか?

  • ASPでAccess接続 ODBCの設定について

    こんにちは。 以前も、ASPでAccessファイルへの接続について、こちらでお世話になりました。 別サーバで作ったショッピングシステムのサーバ移行をしています。 これは別の人が作ったシステムで、社内には誰もわかる人がいません。 (私が簡単なサイトが作れるので、話が回ってきた感じです) ASPで作られているのですが、91個のASPファイルから同一Accessファイルへ接続している作りになっていることが今日分かりました。 コードに直接フルパスを記入するやり方ではなく、ODBCデータソースにファイルを選択してやり、DSN名で呼び出すやり方でコードが書いてあったので、調べてODBCデータソースにDBを選択しました。 しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。 コードは Set cnn2=Server.CreateObject("ADODB.Connection") cnn2.open DSN名 ODBCデータソースへの設定は、ユーザDSNとシステムDSNに MS Access Driver(mdb)を追加し、追加する際にデータベース部分に接続したいAccessファイルを選択しています。 その時のDSN名を、コードに記載されている名前と同じDSN名にしました。 試しにDSN名ではなくフルパスでAccessファイルに接続したら、問題なく表示されました。 この現象は、以前使っていたサーバのODBCに設定が残っている為、以前のサーバを見にいってしまっているのでしょうか? それとも、単純に私の設定が間違っているのでしょうか? 知識不足で分かりにくい表現ばかりだと思いますが、どうぞよろしくお願い致します。

  • Access 2003 ODBC リンクについて

    Access2003でのORACLE ODBCリンクについてお伺いいたします。 ヒントだけでも頂ければと思います。 現在Windows2000サーバとWindowsXP端末がリンクされAccessデータベースを 入力・編集・検索するフォームが作成されています。(他の人が作成したもの) これらは、ネットワークケーブルでつながれ、データベースの同期も取られているようです。 先日、ネットワークケーブルを外し、サーバだけで検索しようとしたところリンクできないという エラーになりました。 サーバにデータベースのソースがあり、サーバ単独で稼働するものと考えていましたが、 端末とサーバがないとプログラムが稼働しないことがわかりました。 サーバだけで稼働するようにするには、 (1)テーブル・クエリ・フォームをエクスポートし、新たにを作成しインポートすれば可能でしょうか? (2)リンク先の変更などで可能でしょうか? (2)フォームのODBCリンクの部分をVisual Basicで変更しないと無理でしょうか? 以上よろしくお願いいたします。

  • ODBCタイムアウトエラー

    WindowsXP環境でACCESS2003を使用して、ODBCリンクでSQL SERVER2005に接続し、データーを取得後ローカルテーブルにデーターを置く処理を作って運用していたのですが、 Windows7でACCESS2003に移行し、システム内容は変更していないのですが Windows7になってリンクテーブルを開くと「ODBC タイムアウトエラー」が発生します。 WindowsXPのときはタイムアウトが出ずに1分くらいで結果が返ってきます。 多分、SQL SERVER ドライバーの影響と思うのですが分かりません。 どなたか教えてください。 Windows7 SQLSERVER(ODBC)ドライバー バージョン:6.01.7601.17514 windowsXP ドライバー バージョン:200.85.1132.00

  • ネットワーク越しにODBC接続

    PostgreSQL8.0 Windows版を使っています。 自分のPC(WindowsXP SP2)にインストールして、 ODBC経由でAccessで中身を見ているのですが、 LANでつながっている他のマシンからODBC経由で 接続することができません。 接続しようとすると「ODBC接続エラー」とでて 英語で、「サーバーに接続できません」「リモートソケットに接続できません」とでます。 ODBC設定でサーバー名はIPアドレスを直接指定しており、PINGでそのIPが存在する(私のPCであること)ことも確認、PostgreSQLも起動しているのまでは確認しています。 商用版のPowerGresでは、ネットワーク接続認証の設定というのがあったと思うのですが、 PostgreSQL8.0の場合はどのように行えばいいのでしょうか?

  • PostgresSQL のodbcドライバーってどこにありますか?

    PC:winXP Pro サーバー:ターボlinux10 PostgreSQL 7.4.5 パソコンからサーバーに接続する為のODBCドライバーを探しています。 お願いします。

  • クライアントのODBCがつながらない

    サーバーWindows2000+postgreSQL8.2.4でクライアントWindowsXp+postgreSQL ODBC ANSI 8.2.5 サーバーのファイルDSNは設定できましたが、クライアントが「指定したファイルデーターソースパレメータを使用して接続することはできません・・」でつながりません。 サーバー:Server1 データベース名:postgres ユーザー名:postgres パスワード:abcde 何か、間違っていますか?サーバーはネットワークから見える状態です。助けてください!

専門家に質問してみよう