Index: branches/comu-ver2/data/class/SC_DbConn.php
===================================================================
--- branches/comu-ver2/data/class/SC_DbConn.php	(revision 18291)
+++ branches/comu-ver2/data/class/SC_DbConn.php	(revision 18487)
@@ -147,14 +147,22 @@
     }
 
-    // SELECT文の実行結果を全て取得
-    function getAll($n, $arr = ""){
-
-        // mysqlの場合にはビュー表を変換する
-        if (DB_TYPE == "mysql") $n = $this->dbFactory->sfChangeMySQL($n);
-
-        if(PEAR::isError($this->conn)) {
-            if(ADMIN_MODE){
+    /**
+     * クエリを実行し、全ての行を返す
+     *
+     * @param string $sql SQL クエリ
+     * @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 
+     * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。
+     * @return array データを含む2次元配列。失敗した場合に 0 または DB_Error オブジェクトを返します。
+     */
+    function getAll($sql, $arrVal = "", $fetchmode = DB_FETCHMODE_ASSOC) {
+
+        // mysqlの場合にはビュー表を変換する
+        if (DB_TYPE == "mysql") $sql = $this->dbFactory->sfChangeMySQL($sql);
+
+        // XXX このエラー処理はここで行なうべきなのか疑問。また、戻り値も疑問(なお、変更時はドキュメントも変更を)。
+        if (PEAR::isError($this->conn)) {
+            if (ADMIN_MODE) {
                 SC_Utils_Ex::sfErrorHeader("DBへの接続に失敗しました。:" . $this->dsn);
-            }else{
+            } else {
                 SC_Utils_Ex::sfErrorHeader("DBへの接続に失敗しました。:");
             }
@@ -162,12 +170,12 @@
         }
 
-        if ( $arr ){
-            $result = $this->conn->getAll($n, $arr, DB_FETCHMODE_ASSOC);
-        } else {
-            $result = $this->conn->getAll($n, DB_FETCHMODE_ASSOC);
-        }
-
-        if ($this->conn->isError($result)){
-            $this->send_err_mail($result, $n);
+        if ($arrVal) { // FIXME 判定が曖昧
+            $result = $this->conn->getAll($sql, $arrVal, $fetchmode);
+        } else {
+            $result = $this->conn->getAll($sql, $fetchmode);
+        }
+
+        if ($this->conn->isError($result)) {
+            $this->send_err_mail($result, $sql);
         }
         $this->result = $result;
Index: branches/comu-ver2/data/class/SC_Query.php
===================================================================
--- branches/comu-ver2/data/class/SC_Query.php	(revision 18280)
+++ branches/comu-ver2/data/class/SC_Query.php	(revision 18487)
@@ -86,9 +86,10 @@
      * @param string $where WHERE句
      * @param array $arrval プレースホルダ
+     * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。
      * @return array|null
      */
-    function select($col, $table, $where = "", $arrval = array()){
+    function select($col, $table, $where = "", $arrval = array(), $fetchmode = DB_FETCHMODE_ASSOC) {
         $sqlse = $this->getsql($col, $table, $where);
-        $ret = $this->conn->getAll($sqlse, $arrval);
+        $ret = $this->conn->getAll($sqlse, $arrval, $fetchmode);
         return $ret;
     }
@@ -147,6 +148,14 @@
     }
 
-    function getall($sql, $arrval = array()) {
-        $ret = $this->conn->getAll($sql, $arrval);
+    /**
+     * クエリを実行し、全ての行を返す
+     *
+     * @param string $sql SQL クエリ
+     * @param array $arrVal プリペアドステートメントの実行時に使用される配列。配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 
+     * @param integer $fetchmode 使用するフェッチモード。デフォルトは DB_FETCHMODE_ASSOC。
+     * @return array データを含む2次元配列。失敗した場合に 0 または DB_Error オブジェクトを返します。
+     */
+    function getall($sql, $arrval = array(), $fetchmode = DB_FETCHMODE_ASSOC) {
+        $ret = $this->conn->getAll($sql, $arrval, $fetchmode);
         return $ret;
     }
