CakePHP 1.2 で大量データの処理

Model::findAll() だとすぐにメモリー不足になってしまうような処理も、
DboSource::fetchRow() で逐次読み込めば大丈夫。

  $db =& $this->User->getDataSource();
  $row = $ds->fetchRow("SELECT * FROM users");
  while (!empty($row)) {
     var_dump($row);         // 何かの処理
     $row = $db->fetchRow(); // 次のデータ読み込み
  }

(7/1 追記)
大丈夫・・・と思ったが、問題発生!
逐次処理のループ内で DboSource や Model を利用してデータベースにアクセスすると、fetchRow() がリセットされてしまう・・・。なんとかならないかなぁ。応急処置として、ループ内では直接 pg_query() を実行することにした。