From 53560c521e594d6047f58a25ccbc266c56bbcf05 Mon Sep 17 00:00:00 2001 From: svncommit Date: Thu, 20 Oct 2005 16:58:34 +0000 Subject: added DB LIMIT abstraction --- program/include/rcube_db.inc | 11 ++++++++--- program/include/rcube_mdb2.inc | 5 ++++- program/localization/es/labels.inc | 1 + program/steps/addressbook/delete.inc | 7 +++---- program/steps/addressbook/func.inc | 7 +++---- program/steps/addressbook/list.inc | 7 +++---- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/program/include/rcube_db.inc b/program/include/rcube_db.inc index 2b0c01af9..f732da298 100755 --- a/program/include/rcube_db.inc +++ b/program/include/rcube_db.inc @@ -103,7 +103,7 @@ class rcube_db // Query database (read operations) - function query($query) + function query($query, $offset=0, $numrows=0) { // Read or write ? if (strtolower(trim(substr($query,0,6)))=='select') @@ -115,8 +115,13 @@ class rcube_db if ($this->db_provider == 'sqlite') $query = $this->_sqlite_prepare_query($query); - - $result = $this->db_handle->query($query); + + if ($numrows || $offset) + { + $result = $this->db_handle->limitQuery($query,$offset,$numrows); + } + else + $result = $this->db_handle->query($query); if (DB::isError($result)) raise_error(array('code' => 500, diff --git a/program/include/rcube_mdb2.inc b/program/include/rcube_mdb2.inc index 77518e7ae..cd394a878 100755 --- a/program/include/rcube_mdb2.inc +++ b/program/include/rcube_mdb2.inc @@ -103,7 +103,7 @@ class rcube_db // Query database (read operations) - function query($query) + function query($query, $offset=0, $numrows=0) { // Read or write ? if (strtolower(trim(substr($query,0,6)))=='select') @@ -116,6 +116,9 @@ class rcube_db if ($this->db_provider == 'sqlite') $query = $this->_sqlite_prepare_query($query); + $this->db_handle->row_offset = $offset; + $this->db_handle->row_limit = $numrows; + $result = $this->db_handle->query($query); if (PEAR::isError($result)) diff --git a/program/localization/es/labels.inc b/program/localization/es/labels.inc index f0fdca561..0f627ebb7 100644 --- a/program/localization/es/labels.inc +++ b/program/localization/es/labels.inc @@ -63,6 +63,7 @@ $labels['filesize'] = 'Tama $labels['preferhtml'] = 'Prefiero HTML'; $labels['htmlmessage'] = 'Mensaje HTML'; +//$labels['prettydate'] = ''; $labels['addtoaddressbook'] = 'Aņadir a contactos'; diff --git a/program/steps/addressbook/delete.inc b/program/steps/addressbook/delete.inc index 789d84149..e988f5569 100644 --- a/program/steps/addressbook/delete.inc +++ b/program/steps/addressbook/delete.inc @@ -65,12 +65,11 @@ if ($_GET['_cid']) $sql_result = $DB->query(sprintf("SELECT * FROM %s WHERE del!='1' AND user_id=%d - ORDER BY name - LIMIT %d, %d", + ORDER BY name", get_table_name('contacts'), - $_SESSION['user_id'], + $_SESSION['user_id']), $start_row, - $count)); + $count); $commands .= rcmail_js_contacts_list($sql_result); diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc index 7858a4e88..53628162b 100644 --- a/program/steps/addressbook/func.inc +++ b/program/steps/addressbook/func.inc @@ -59,12 +59,11 @@ function rcmail_contacts_list($attrib) $sql_result = $DB->query(sprintf("SELECT * FROM %s WHERE del!='1' AND user_id=%d - ORDER BY name - LIMIT %d, %d", + ORDER BY name", get_table_name('contacts'), - $_SESSION['user_id'], + $_SESSION['user_id']), $start_row, - $CONFIG['pagesize'])); + $CONFIG['pagesize']); } else $sql_result = NULL; diff --git a/program/steps/addressbook/list.inc b/program/steps/addressbook/list.inc index 2c5148a91..4ed092541 100644 --- a/program/steps/addressbook/list.inc +++ b/program/steps/addressbook/list.inc @@ -43,12 +43,11 @@ $start_row = ($CONTACTS_LIST['page']-1) * $CONFIG['pagesize']; $sql_result = $DB->query(sprintf("SELECT * FROM %s WHERE del!='1' AND user_id=%d - ORDER BY name - LIMIT %d, %d", + ORDER BY name", get_table_name('contacts'), - $_SESSION['user_id'], + $_SESSION['user_id']), $start_row, - $CONFIG['pagesize'])); + $CONFIG['pagesize']); $commands .= rcmail_js_contacts_list($sql_result); -- cgit v1.2.3