Changeset 22567 for branches/version-2_12-dev/data/class/db
- Timestamp:
- 2013/02/18 19:09:54 (8 years ago)
- Location:
- branches/version-2_12-dev/data/class/db
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/db/SC_DB_DBFactory.php
r22206 r22567 29 29 * @version $Id:SC_DB_DBFactory.php 15532 2007-08-31 14:39:46Z nanasess $ 30 30 */ 31 class SC_DB_DBFactory { 31 class SC_DB_DBFactory 32 { 32 33 33 34 /** … … 37 38 * @return mixed DBFactory インスタンス 38 39 */ 39 function getInstance($db_type = DB_TYPE) { 40 function getInstance($db_type = DB_TYPE) 41 { 40 42 switch ($db_type) { 41 43 case 'mysql': … … 60 62 * @return mixed データソース名またはDB接続パラメータの連想配列 61 63 */ 62 function getDSN($dsn = '') { 64 function getDSN($dsn = '') 65 { 63 66 if (empty($dsn)) { 64 67 if (defined('DEFAULT_DSN')) { … … 84 87 * @return string データベースのバージョン 85 88 */ 86 function sfGetDBVersion($dsn = '') { return null; } 89 function sfGetDBVersion($dsn = '') 90 { return null; } 87 91 88 92 /** … … 92 96 * @return string MySQL 用に置換した SQL 文 93 97 */ 94 function sfChangeMySQL($sql) { return null; } 98 function sfChangeMySQL($sql) 99 { return null; } 95 100 96 101 /** … … 100 105 * @return string 昨日の売上高・売上件数を算出する SQL 101 106 */ 102 function getOrderYesterdaySql($method) { return null; } 107 function getOrderYesterdaySql($method) 108 { return null; } 103 109 104 110 /** … … 108 114 * @return string 当月の売上高・売上件数を算出する SQL 109 115 */ 110 function getOrderMonthSql($method) { return null; } 116 function getOrderMonthSql($method) 117 { return null; } 111 118 112 119 /** … … 115 122 * @return string 昨日のレビュー書き込み件数を算出する SQL 116 123 */ 117 function getReviewYesterdaySql() { return null; } 124 function getReviewYesterdaySql() 125 { return null; } 118 126 119 127 /** … … 122 130 * @return string 検索条件の SQL 123 131 */ 124 function getSendHistoryWhereStartdateSql() { return null; } 132 function getSendHistoryWhereStartdateSql() 133 { return null; } 125 134 126 135 /** … … 129 138 * @return string 検索条件の SQL 130 139 */ 131 function getDownloadableDaysWhereSql() { return null; } 140 function getDownloadableDaysWhereSql() 141 { return null; } 132 142 133 143 /** … … 137 147 * @return string 連結後の SQL 文 138 148 */ 139 function concatColumn($columns) { return null; } 149 function concatColumn($columns) 150 { return null; } 140 151 141 152 /** … … 148 159 * @return array テーブル名の配列 149 160 */ 150 function findTableNames($expression = '') { return array(); } 161 function findTableNames($expression = '') 162 { return array(); } 151 163 152 164 /** … … 159 171 * @return array インデックス設定情報配列 160 172 */ 161 function sfGetCreateIndexDefinition($table, $name, $definition) { return $definition; } 173 function sfGetCreateIndexDefinition($table, $name, $definition) 174 { return $definition; } 162 175 163 176 /** … … 167 180 * @return void 168 181 */ 169 function initObjQuery(SC_Query &$objQuery) { 182 function initObjQuery(SC_Query &$objQuery) 183 { 170 184 } 171 185 … … 175 189 * @return array テーブル名の配列 176 190 */ 177 function listTables(SC_Query &$objQuery) { 191 function listTables(SC_Query &$objQuery) 192 { 178 193 $objManager =& $objQuery->conn->loadModule('Manager'); 179 194 return $objManager->listTables(); -
branches/version-2_12-dev/data/class/db/SC_DB_MasterData.php
r22206 r22567 42 42 * @version $Id:SC_DB_MasterData.php 15532 2007-08-31 14:39:46Z nanasess $ 43 43 */ 44 class SC_DB_MasterData { 44 class SC_DB_MasterData 45 { 45 46 46 47 // {{{ properties … … 70 71 * @return array マスターデータ 71 72 */ 72 function getMasterData($name, $columns = array()) { 73 function getMasterData($name, $columns = array()) 74 { 73 75 74 76 $columns = $this->getDefaultColumnName($columns); … … 102 104 * @return integer マスターデータの登録数 103 105 */ 104 function registMasterData($name, $columns, $masterData, $autoCommit = true) { 106 function registMasterData($name, $columns, $masterData, $autoCommit = true) 107 { 105 108 106 109 $columns = $this->getDefaultColumnName($columns); … … 137 140 * @return integer マスターデータの更新数 138 141 */ 139 function updateMasterData($name, $columns, $masterData, $autoCommit = true) { 142 function updateMasterData($name, $columns, $masterData, $autoCommit = true) 143 { 140 144 141 145 $columns = $this->getDefaultColumnName($columns); … … 171 175 * @return integer マスターデータの更新数 172 176 */ 173 function insertMasterData($name, $key, $value, $comment, $autoCommit = true) { 177 function insertMasterData($name, $key, $value, $comment, $autoCommit = true) 178 { 174 179 175 180 $columns = $this->getDefaultColumnName(); … … 203 208 * @return integer マスターデータの削除数 204 209 */ 205 function deleteMasterData($name, $autoCommit = true) { 210 function deleteMasterData($name, $autoCommit = true) 211 { 206 212 $this->objQuery =& SC_Query_Ex::getSingletonInstance(); 207 213 if ($autoCommit) { … … 225 231 * @return bool 消去した場合 true 226 232 */ 227 function clearCache($name) { 233 function clearCache($name) 234 { 228 235 $masterDataFile = MASTER_DATA_REALDIR . $name . '.php'; 229 236 if (is_file($masterDataFile)) { … … 252 259 * @return bool キャッシュの生成に成功した場合 true 253 260 */ 254 function createCache($name, $columns = array(), $isDefine = false, $commentColumn = array()) { 261 function createCache($name, $columns = array(), $isDefine = false, $commentColumn = array()) 262 { 255 263 256 264 // マスターデータを取得 … … 301 309 * @return array マスターデータ 302 310 */ 303 function getDbMasterData($name, $columns = array()) { 311 function getDbMasterData($name, $columns = array()) 312 { 304 313 305 314 $columns = $this->getDefaultColumnName($columns); … … 333 342 * @return array カラム名を格納した配列 334 343 */ 335 function getDefaultColumnName($columns = array()) { 344 function getDefaultColumnName($columns = array()) 345 { 336 346 337 347 if (!empty($columns)) { … … 350 360 * @return string 定数定義の文字列 351 361 */ 352 function getMasterDataAsDefine($masterData, $comments = array()) { 362 function getMasterDataAsDefine($masterData, $comments = array()) 363 { 353 364 $data = ''; 354 365 foreach ($masterData as $key => $val) { -
branches/version-2_12-dev/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php
r22206 r22567 33 33 * @version $Id:SC_DB_DBFactory_MYSQL.php 15267 2007-08-09 12:31:52Z nanasess $ 34 34 */ 35 class SC_DB_DBFactory_MYSQL extends SC_DB_DBFactory { 35 class SC_DB_DBFactory_MYSQL extends SC_DB_DBFactory 36 { 36 37 37 38 /** SC_Query インスタンス */ … … 44 45 * @return string データベースのバージョン 45 46 */ 46 function sfGetDBVersion($dsn = '') { 47 function sfGetDBVersion($dsn = '') 48 { 47 49 $objQuery =& SC_Query_Ex::getSingletonInstance($dsn); 48 50 $val = $objQuery->getOne('select version()'); … … 57 59 * @return string MySQL 用に置換した SQL 文 58 60 */ 59 function sfChangeMySQL($sql) { 61 function sfChangeMySQL($sql) 62 { 60 63 // 改行、タブを1スペースに変換 61 64 $sql = preg_replace("/[\r\n\t]/",' ',$sql); … … 76 79 * @return array 文字コード情報 77 80 */ 78 function getCharSet() { 81 function getCharSet() 82 { 79 83 $objQuery =& SC_Query_Ex::getSingletonInstance(); 80 84 $arrRet = $objQuery->getAll("SHOW VARIABLES LIKE 'char%'"); … … 88 92 * @return string 昨日の売上高・売上件数を算出する SQL 89 93 */ 90 function getOrderYesterdaySql($method) { 94 function getOrderYesterdaySql($method) 95 { 91 96 return 'SELECT ' . $method . '(total) FROM dtb_order ' 92 97 . 'WHERE del_flg = 0 ' … … 101 106 * @return string 当月の売上高・売上件数を算出する SQL 102 107 */ 103 function getOrderMonthSql($method) { 108 function getOrderMonthSql($method) 109 { 104 110 return 'SELECT '.$method.'(total) FROM dtb_order ' 105 111 . 'WHERE del_flg = 0 ' … … 114 120 * @return string 昨日のレビュー書き込み件数を算出する SQL 115 121 */ 116 function getReviewYesterdaySql() { 122 function getReviewYesterdaySql() 123 { 117 124 return 'SELECT COUNT(*) FROM dtb_review AS A ' 118 125 . 'LEFT JOIN dtb_products AS B ' … … 129 136 * @return string 検索条件の SQL 130 137 */ 131 function getSendHistoryWhereStartdateSql() { 138 function getSendHistoryWhereStartdateSql() 139 { 132 140 return 'start_date BETWEEN date_add(CURRENT_TIMESTAMP,INTERVAL -5 minute) AND date_add(CURRENT_TIMESTAMP,INTERVAL 5 minute)'; 133 141 } … … 139 147 * @return string 検索条件の SQL 140 148 */ 141 function getDownloadableDaysWhereSql($dtb_order_alias = 'dtb_order') { 149 function getDownloadableDaysWhereSql($dtb_order_alias = 'dtb_order') 150 { 142 151 return '(SELECT IF((SELECT d1.downloadable_days_unlimited FROM dtb_baseinfo d1)=1, 1, DATE(CURRENT_TIMESTAMP) <= DATE(DATE_ADD(' . $dtb_order_alias . '.payment_date, INTERVAL (SELECT downloadable_days FROM dtb_baseinfo) DAY))))'; 143 152 } … … 149 158 * @return string 検索条件のSQL 150 159 */ 151 function getOrderTotalDaysWhereSql($type) { 160 function getOrderTotalDaysWhereSql($type) 161 { 152 162 switch ($type) { 153 163 case 'month': … … 185 195 * @return string 年代抽出部分の SQL 186 196 */ 187 function getOrderTotalAgeColSql() { 197 function getOrderTotalAgeColSql() 198 { 188 199 return 'TRUNC((YEAR(create_date) - YEAR(order_birth)) - (RIGHT(create_date, 5) < RIGHT(order_birth, 5)), -1)'; 189 200 } … … 195 206 * @return string 連結後の SQL 文 196 207 */ 197 function concatColumn($columns) { 208 function concatColumn($columns) 209 { 198 210 $sql = 'concat('; 199 211 $i = 0; … … 218 230 * @return array テーブル名の配列 219 231 */ 220 function findTableNames($expression = '') { 232 function findTableNames($expression = '') 233 { 221 234 $objQuery =& SC_Query_Ex::getSingletonInstance(); 222 235 $sql = 'SHOW TABLES LIKE '. $objQuery->quote('%' . $expression . '%'); … … 233 246 * @return string 変換後の SQL 文 234 247 */ 235 function sfChangeILIKE($sql) { 248 function sfChangeILIKE($sql) 249 { 236 250 $changesql = preg_replace('/(^|[^\w])ILIKE([^\w]|$)/i', '$1LIKE$2', $sql); 237 251 return $changesql; … … 245 259 * @return string 変換後の SQL 文 246 260 */ 247 function sfChangeRANDOM($sql) { 261 function sfChangeRANDOM($sql) 262 { 248 263 $changesql = preg_replace('/(^|[^\w])RANDOM\(/i', '$1RAND(', $sql); 249 264 return $changesql; … … 257 272 * @return string 変換後の SQL 文 258 273 */ 259 function sfChangeTrunc($sql) { 274 function sfChangeTrunc($sql) 275 { 260 276 $changesql = preg_replace('/(^|[^\w])TRUNC([^\w]|$)/i', '$1TRUNCATE$2', $sql); 261 277 return $changesql; … … 269 285 * @return string 変換後の SQL 文 270 286 */ 271 function sfChangeArrayToString($sql) { 287 function sfChangeArrayToString($sql) 288 { 272 289 if (strpos(strtoupper($sql), 'ARRAY_TO_STRING') !== FALSE) { 273 290 preg_match_all('/ARRAY_TO_STRING.*?\(.*?ARRAY\(.*?SELECT (.+?) FROM (.+?) WHERE (.+?)\).*?\,.*?\'(.+?)\'.*?\)/is', $sql, $match, PREG_SET_ORDER); … … 290 307 * @return array インデックス設定情報配列 291 308 */ 292 function sfGetCreateIndexDefinition($table, $name, $definition) { 309 function sfGetCreateIndexDefinition($table, $name, $definition) 310 { 293 311 $objQuery =& SC_Query_Ex::getSingletonInstance(); 294 312 $arrTblInfo = $objQuery->getTableInfo($table); … … 310 328 * @return string 311 329 */ 312 function getDummyFromClauseSql() { 330 function getDummyFromClauseSql() 331 { 313 332 return 'FROM DUAL'; 314 333 } … … 320 339 * @return void 321 340 */ 322 function initObjQuery(SC_Query &$objQuery) { 341 function initObjQuery(SC_Query &$objQuery) 342 { 323 343 $objQuery->exec('SET SESSION storage_engine = InnoDB'); 324 344 $objQuery->exec("SET SESSION sql_mode = 'ANSI'"); -
branches/version-2_12-dev/data/class/db/dbfactory/SC_DB_DBFactory_PGSQL.php
r22206 r22567 33 33 * @version $Id:SC_DB_DBFactory_PGSQL.php 15532 2007-08-31 14:39:46Z nanasess $ 34 34 */ 35 class SC_DB_DBFactory_PGSQL extends SC_DB_DBFactory { 35 class SC_DB_DBFactory_PGSQL extends SC_DB_DBFactory 36 { 36 37 37 38 /** … … 41 42 * @return string データベースのバージョン 42 43 */ 43 function sfGetDBVersion($dsn = '') { 44 function sfGetDBVersion($dsn = '') 45 { 44 46 $objQuery =& SC_Query_Ex::getSingletonInstance($dsn); 45 47 $val = $objQuery->getOne('select version()'); … … 57 59 * @return string MySQL 用に置換した SQL 文 58 60 */ 59 function sfChangeMySQL($sql) { 61 function sfChangeMySQL($sql) 62 { 60 63 return $sql; 61 64 } … … 67 70 * @return string 昨日の売上高・売上件数を算出する SQL 68 71 */ 69 function getOrderYesterdaySql($method) { 72 function getOrderYesterdaySql($method) 73 { 70 74 return 'SELECT '.$method.'(total) FROM dtb_order ' 71 75 . 'WHERE del_flg = 0 ' … … 80 84 * @return string 当月の売上高・売上件数を算出する SQL 81 85 */ 82 function getOrderMonthSql($method) { 86 function getOrderMonthSql($method) 87 { 83 88 return 'SELECT '.$method.'(total) FROM dtb_order ' 84 89 . 'WHERE del_flg = 0 ' … … 93 98 * @return string 昨日のレビュー書き込み件数を算出する SQL 94 99 */ 95 function getReviewYesterdaySql() { 100 function getReviewYesterdaySql() 101 { 96 102 return 'SELECT COUNT(*) FROM dtb_review AS A ' 97 103 . 'LEFT JOIN dtb_products AS B ' … … 108 114 * @return string 検索条件の SQL 109 115 */ 110 function getSendHistoryWhereStartdateSql() { 116 function getSendHistoryWhereStartdateSql() 117 { 111 118 return "start_date BETWEEN current_timestamp + '- 5 minutes' AND current_timestamp + '5 minutes'"; 112 119 } … … 118 125 * @return string 検索条件の SQL 119 126 */ 120 function getDownloadableDaysWhereSql($dtb_order_alias = 'dtb_order') { 127 function getDownloadableDaysWhereSql($dtb_order_alias = 'dtb_order') 128 { 121 129 $baseinfo = SC_Helper_DB_Ex::sfGetBasisData(); 122 130 //downloadable_daysにNULLが入っている場合(無期限ダウンロード可能時)もあるので、NULLの場合は0日に補正 … … 145 153 * @return string 検索条件のSQL 146 154 */ 147 function getOrderTotalDaysWhereSql($type) { 155 function getOrderTotalDaysWhereSql($type) 156 { 148 157 switch ($type) { 149 158 case 'month': … … 181 190 * @return string 年代抽出部分の SQL 182 191 */ 183 function getOrderTotalAgeColSql() { 192 function getOrderTotalAgeColSql() 193 { 184 194 return 'TRUNC(CAST(EXTRACT(YEAR FROM AGE(create_date, order_birth)) AS INT), -1)'; 185 195 } … … 191 201 * @return string 連結後の SQL 文 192 202 */ 193 function concatColumn($columns) { 203 function concatColumn($columns) 204 { 194 205 $sql = ''; 195 206 $i = 0; … … 214 225 * @return array テーブル名の配列 215 226 */ 216 function findTableNames($expression = '') { 227 function findTableNames($expression = '') 228 { 217 229 $objQuery =& SC_Query_Ex::getSingletonInstance(); 218 230 $sql = ' SELECT c.relname AS name, ' … … 238 250 * @return array 文字コード情報 239 251 */ 240 function getCharSet() { 252 function getCharSet() 253 { 241 254 // 未実装 242 255 return array(); … … 248 261 * @return string 249 262 */ 250 function getDummyFromClauseSql() { 263 function getDummyFromClauseSql() 264 { 251 265 return ''; 252 266 } … … 258 272 * @return array テーブル名の配列 259 273 */ 260 function listTables(SC_Query &$objQuery) { 274 function listTables(SC_Query &$objQuery) 275 { 261 276 $col = 'tablename'; 262 277 $from = 'pg_tables';
Note: See TracChangeset
for help on using the changeset viewer.