- - PR -
LINUX ODBCの設定とPHPコネクション
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-07 12:34
http://www-03.ibm.com/servers/eserver/iseries/access/
http://www-03.ibm.com/servers/eserver/iseries/access/linux/guide/ を参考に別マシンのDB2 V5.1 (AS400) にODBC接続しようとしてます まずインストールしたら /etc/odbcinst.iniに [iSeries Access ODBC Driver] Description = iSeries Access for Linux ODBC Driver Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so Threading = 2 DontDLClose = 1 UsageCount = 1 というエントリーが追加されました PHP(Version5)で $conn_string = "DRIVER={iSeries Access ODBC Driver};DATABASE=$database;" . "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;"; $conn = odbc_connect($conn_string, '', ''); if ($conn) { echo "Connection succeeded."; odbc_close($conn); } else { echo "Connection failed."; } でやっってますが・・・ エラーで Warning: odbc_connect() [function.odbc-connect]: SQL error: [unixODBC][IBM][iSeries Access ODBC Driver] Missing system name needed for connection., SQL state S1000 in SQLConnect in /var/www/html/ibm.php on line 10 Connection failed. となります 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 はなにもはいってません。 そこで odbc.iniを [AS400Master] Description = AS400 Master File Driver = iSeries Access ODBC Driver Database = TEST Server = 192.168.1.20 Port = 449 として $conn = odbc_connect("AS400Master","USER","PASSWD"); としても同じエラーがでています 見る限りドライバーは認識しているようなのですが・・・ なぜかデータソースがみえんといっているようです この手のエラーはなにが原因なのでしょうか? "SQL state S1000 in SQLConnect " で検索すると 結構他のDBでもにたようなエラーをうけて相談している人がいるようですが なかなか約にたつサイトがありません (なぜかロシア語やドイツ語のサイトがころころひっかかってきます) なにかためせることがあればどうかご教授いただけたら幸いです |
|
投稿日時: 2006-02-07 17:25
CWBPingは通りますか?
参考 http://www.e-bellnet.com/special/vision/vision_0405.html |
|
投稿日時: 2006-02-08 15:35
DoDoさん
貴重な情報ありがとうございます CWBPingはためしていませんでした (いろんなものをぐちゃぐちゃにいれすぎて、きれいにするために すでに再度いれなおしました) ただ付属のrmtodbc をつかったら以下のエラーがでたので PHPとの相性による原因ではなさそうです ===================================== /opt/ibm/iSeriesAccess/bin/rmtodbc "select * from MYTABLE" /DSN:AS400Master /USER:USER /PASSWORD:PASSWORD IBM iSeries Access for Linux Version 5 Release 2 Level 0 Remote Command via ODBC utility V1.2 (C) Copyright IBM Corporation and Others 1984, 2003. All rights reserved. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Licensed Materials - Property of IBM ERROR SQLDriverConnect Dialog failed. ==================================== dodoさんの紹介の記事によると、 ソースからやらないといけないようですね PHP付属のRPMでなんでもワンタッチでやっていた私には ちょっと複雑そうです 疑問なのは UNIXODBCをいれたあとに ODBCINST.INIでDBドライバーと関連 づけさせるのでしょうが、これは普通 DBをインストールするときにやってくれるのでしょうか? (DBをインストールしたときにどれがドライバでそれがどこに インストールされそれをどのようにODBCINSTに関連づけるかがIBMのDBでは バージョンとの整合性も含めた情報がすこしすくない、あるいはまとまっていないのでやっかいです、(IBMのDB2では・・) とりあえず帰ったらさっそくためします ありがとうございました。 |
1