[s2container-php5:104] findAllArrayメソッド実行時にエラーは設定ミスが原因でした。orz

Yoshinari Ueyama [E-MAIL ADDRESS DELETED]
2007年 8月 20日 (月) 10:32:27 JST


うえやまです。

下記件ですが・・・・データソースに関する設定ミスが原因でした。お騒がせしまして申し訳ありませんでした。

【状況】
1)PRADOのみであるアプリを作っていた。
2)そのDBアクセス部はPRADOのActiveRecordを使用。
3)ちなみにDataSource設定はapplication.xmlというファイルに記述。
4)同様の処理をS2Daoで行おうとした。
5)daoもentityもlogicも実装してPageクラスにDI !
6)実行時にエラー発生

【エラーの原因】
pdo.diconの記述が別アプリの設定のままで全然別の(既存の)データベースを参照していた! orz

pdo.diconの設定内容をapplication.xmlの記述内容とそろえることで想定どおりの動きになりました。

【改善の方向】
今後も同じようなミスを繰り返すかも知れないので、DataSource設定部分の一元化を図ります。
今の時点では、application.xmlの内容を元にDataSource設定内容を取得し、ApplicationContextを
利用してpdo.diconのDataSource設定部分を生成する。などの連携機能をつけようと思っています。

お騒がせいたしまして申し訳ありませんでした。

ハタです。

反応が遅くなってしまいました。すいません。
>
> うえやまさん、詳細な解析ありがとうございます。
> MySQL側でprimaryKeyを取得しにいくために
>
> > SELECT * FROM テーブル名 LIMIT 0
>
> として、空のテーブル情報から取得できたカラム項目数(PDOStatement::columnCount)分だけ
> カラム定義情報を取得(PDOStatement::getColumnMeta)します。
> MySQLの場合は、PDOドライバの実装だけでこの定義を使用しているのですが、
> MySQLのバージョンによってはPDOドライバがサポートしていない場合もあります。(4.0.xxとか)
> もしPDOドライバがサポートしていない場合は、他のDBMS同様、Wrapperで取得するように修正が必要です。
> # ちなみに、以前私の環境でテストしたときに4.0.20が上手く認識しなかったような記憶があります。
>
> もしよければ使用しているMySQLのバージョンを教えていただけますか?私の方で用意ができれば、再現させてみたいです。



以上です。
-- 
------------------------------------------------------------------
  植山 能成@福岡
mailto:[E-MAIL ADDRESS DELETED]
------------------------------------------------------------------
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/s2container-php5/attachments/20070820/c7f23b2d/attachment.html 


S2Container-PHP5 メーリングリストの案内