[Svn-src-all:1425] [version-2_5-dev 20317] #564 (PEAR::DB から PEAR::MDB2 への変更) $force_run時の挙動に問題があった為修正。

AMUAMU admin @ mail.ec-cube.net
2011年 2月 22日 (火) 10:44:08 JST


Subversion committed to /home/svn/open 20317
http://svn.ec-cube.net/open_trac/changeset/20317
┌────────────────────────────┐
│更新者 :  AMUAMU                                       │
│更新日時:  2011-02-22 10:44:08 +0900 (火, 22  2月 2011)│
└────────────────────────────┘

Log:
--------------------------------------------------------
#564 (PEAR::DB から PEAR::MDB2 への変更) $force_run時の挙動に問題があった為修正。
#657 (CSVダウンロードの改善) の為にクエリの結果カラム列名を取得するメソッドを追加

Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/class/SC_Query.php

変更: branches/version-2_5-dev/data/class/SC_Query.php
===================================================================
--- branches/version-2_5-dev/data/class/SC_Query.php	2011-02-22 01:41:07 UTC (rev 20316)
+++ branches/version-2_5-dev/data/class/SC_Query.php	2011-02-22 01:44:08 UTC (rev 20317)
@@ -729,12 +729,12 @@
 
         $sth =& $this->prepare($n, $types, $result_types);
         if (PEAR::isError($sth) && $this->force_run) {
-            return;
+            return $sth;
         }
 
         $result = $this->execute($sth, $arr);
         if (PEAR::isError($result) && $this->force_run) {
-            return;
+            return $sth;
         }
         
         //PREPAREの解放
@@ -937,6 +937,37 @@
 
         return $err;
     }
+
+    /**
+     * SQLクエリの結果セットのカラム名だけを取得する
+     *
+     * @param string $n 実行する SQL 文
+     * @param array $arr ブレースホルダに挿入する値
+     * @param boolean エラーが発生しても処理を続行する場合 true
+     * @param mixed $types プレースホルダの型指定 デフォルトnull = string
+     * @param mixed $result_types 返値の型指定またはDML実行(MDB2_PREPARE_MANIP)
+     * @return array 実行結果の配列
+     */
+    function getQueryDefsFields($n ,$arr = array(), $ignore_err = false, $types = null, $result_types = MDB2_PREPARE_RESULT ){
+
+        $n = $this->dbFactory->sfChangeMySQL($n);
+
+        $sth =& $this->prepare($n, $types, $result_types);
+        if (PEAR::isError($sth) && ($this->force_run || $ignore_err)) {
+            return;
+        }
+
+        $result = $this->execute($sth, $arr);
+        if (PEAR::isError($result) && ($this->force_run || $ignore_err)) {
+            return;
+        }
+        $arrRet = $result->getColumnNames();
+        //PREPAREの解放
+        $sth->free();
+
+        return $arrRet;
+    }
+
 }
 
 ?>




Svn-src-all メーリングリストの案内