[PHP-users 10511] Re: DBクラスのODBC の意味合いについて

Naomasa Numajiri php-users@php.gr.jp
Thu, 03 Oct 2002 16:43:54 +0900


こんにちは、

ODBC関数は詳しくないので別方面から

[[CVSの使い方]]

* 補足
	- PC-UNIX環境をお持ちになっていることを想定しています。
* 参考
	- googleで「PEAR cvs pserver co」辺りをキーにして検索しました。
* 手順
	% cd ~/tmp/
	% touch ~/.cvspass
	% cvs -d :pserver:cvsread@cvs.php.net:/repository login
		-- passwordは"phpfi"
		-- repositoryの場所が変わっていないことを祈る
	% cvs -d :pserver:cvsread@cvs.php.net:/repository co -d php4_pear php4/pear
	% cd php4_pear
	% ls DB/
		-- なぜか空っぽ
	% cvs status -v CMD.php
		- 以下の「-r」で何を指定すべきか参考にするため
	% cvs update -r php_4_2_3
	% cd DB/
	% cvs status -v odbc.php
※ 最後のコマンドでodbc.phpのrevisionとタグを比較して見る限り、
   php4.2.0からodbc.phpの内容は変わっていないようです。

で、確認したことをふまえて、以下にコメント挿入

On Thu, 03 Oct 2002 15:38:48 +0900
Suguru Matsushita <staff_matsushita@ewoman.co.jp> wrote:

; 松下@世田谷です。
---中略---
; 
; という部分があるのですが、

; # ごめんなさい、あろうことかオリジナルに直接手を加えたので、正確な行数は
; # 不明です。今のバージョンでは直ってるかも知れません。・・・ああ・・・。

どうやら直っていないっぽいです。
http://www.1x1.jp/php/manual_pear/contributing.bugs.fixing.html
辺りを参考にして報告すれば、名前が載るかも。

; 
---中略---
; 
; ----- ↓このように変えます -----
; 
;         if ($this->provides('pconnect')) {
;             $connect_function = $persistent ? 'odbc_pconnect' : 'odbc_connect';
;         } else {
;             $connect_function = 'odbc_connect';
;         }
;         $database = $dsninfo['database'] ;
;         $conn = @$connect_function($database, $user, $pw);
;         if (!is_resource($conn)) {
;             return $this->raiseError(DB_ERROR_CONNECT_FAILED, null, null,
;                                          null, $this->errorNative());
;         }
; -----
; これでちゃんと接続されるようになりました。・・・ひどいよお。

dsninfo['database']とdsninfo['hostspec']の使い分けが、見ただけでは
分かりませんでした。
(oci8.php,mysql.phpの同じ場所を眺める限り、hostspecを使うのが正しい
  っぽいのですが、自信なし。)

; 
---中略---
; 
; なぜか、元のソースは間違っている上に
; -----
;         $conn = @$connect_function($dbhost, $user, $pw);
;         $conn = @$connect_function( $dbhost, $user, $pw );
; -----
; と微妙に違う二行が重複していたりします。
; 作っている途中で夕飯にでも呼ばれたんでしょうか? (^^;

php4.2.3に含まれているPEARのodbc.phpと、CVSから取得した
タグがphp_4_2_3のodbc.phpを見ましたが、重複していませんでした。
(なので、なんで重複しているのか謎)

; 
; 結論として「DB クラスの ODBC は、関数の ODBC で動くなら利用可能です。」
; 
; ご厚意にお応えして、きっちりと結論を出した上での返事を出したかったため、
; 少し返事が遅れてしまったこと、お詫びいたします。
; 
; -- 
; <staff_matsushita@ewoman.co.jp>


以上、参考になれば。

-- ぬ