From fd4b8d9f45d1707035021bc19b8d5bc17ede66ce Mon Sep 17 00:00:00 2001 From: wei <> Date: Mon, 12 Feb 2007 12:46:11 +0000 Subject: Add IBM DB2 driver for active record. --- .../Data/ActiveRecord/Vendor/TSqliteMetaData.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'framework/Data/ActiveRecord/Vendor/TSqliteMetaData.php') diff --git a/framework/Data/ActiveRecord/Vendor/TSqliteMetaData.php b/framework/Data/ActiveRecord/Vendor/TSqliteMetaData.php index c82a99ad..c44d73cb 100644 --- a/framework/Data/ActiveRecord/Vendor/TSqliteMetaData.php +++ b/framework/Data/ActiveRecord/Vendor/TSqliteMetaData.php @@ -48,10 +48,23 @@ class TSqliteMetaData extends TDbMetaDataCommon return strlen($sql) > 0 ? $sql : ''; } - protected function getOrdering($by, $direction) + public function getSearchRegExpCriteria($fields, $keywords) { - $dir = strtolower($direction) == 'desc' ? 'DESC' : 'ASC'; - return $this->getColumn($by)->getName(). ' '.$dir; + if(strlen(trim($keywords)) == 0) return ''; + $words = array(); + preg_match_all('/([a-zA-Z0-9-+]+)/', $keywords, $words); + $result = array(); + foreach($fields as $field) + $result[] = $this->getLikeCriteriaStr($this->getColumn($field)->getName(), $words[0]); + return '('.implode(' OR ', $result).')'; + } + + protected function getLikeCriteriaStr($column, $words) + { + $result=array(); + foreach($words as $word) + $result[] = "({$column} LIKE \"%{$word}%\")"; + return '('.implode(' AND ', $result).')'; } /** -- cgit v1.2.3