summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-06-08 19:53:04 +0200
committerAleksander Machniak <alec@alec.pl>2013-06-08 19:53:04 +0200
commit66407a75d1eced92d0bd725caa028f54a3b345be (patch)
tree40815913d7fe247301e01ec85e6f8df11ca42f79
parentb68e2355d7dcc40de404a93b9d39add2a6e45510 (diff)
Fix date format issues on MS SQL Server (#1488918)
-rw-r--r--CHANGELOG1
-rw-r--r--program/lib/Roundcube/rcube_db.php4
-rw-r--r--program/lib/Roundcube/rcube_db_mssql.php12
-rw-r--r--program/lib/Roundcube/rcube_db_sqlsrv.php12
4 files changed, 28 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f986e2541..a601dd2a0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix date format issues on MS SQL Server (#1488918)
- Fix so non-inline images aren't skipped on forward (#1489150)
- Add imap_cache_ttl option to configure TTL of imap_cache
- Make LDAP cache engine configurable via ldap_cache and ldap_cache_ttl options
diff --git a/program/lib/Roundcube/rcube_db.php b/program/lib/Roundcube/rcube_db.php
index 086fd66cb..597fa75f9 100644
--- a/program/lib/Roundcube/rcube_db.php
+++ b/program/lib/Roundcube/rcube_db.php
@@ -368,8 +368,10 @@ class rcube_db
*/
protected function _query($query, $offset, $numrows, $params)
{
+ $query = trim($query);
+
// Read or write ?
- $mode = preg_match('/^(select|show)/i', ltrim($query)) ? 'r' : 'w';
+ $mode = preg_match('/^(select|show|set)/i', $query) ? 'r' : 'w';
$this->db_connect($mode);
diff --git a/program/lib/Roundcube/rcube_db_mssql.php b/program/lib/Roundcube/rcube_db_mssql.php
index 71317078c..4c005b0d0 100644
--- a/program/lib/Roundcube/rcube_db_mssql.php
+++ b/program/lib/Roundcube/rcube_db_mssql.php
@@ -46,6 +46,18 @@ class rcube_db_mssql extends rcube_db
}
/**
+ * Driver-specific configuration of database connection
+ *
+ * @param array $dsn DSN for DB connections
+ * @param PDO $dbh Connection handler
+ */
+ protected function conn_configure($dsn, $dbh)
+ {
+ // Set date format in case of non-default language (#1488918)
+ $this->query("SET DATEFORMAT ymd");
+ }
+
+ /**
* Return SQL function for current time and date
*
* @param int $interval Optional interval (in seconds) to add/subtract
diff --git a/program/lib/Roundcube/rcube_db_sqlsrv.php b/program/lib/Roundcube/rcube_db_sqlsrv.php
index 9958dc291..88473e213 100644
--- a/program/lib/Roundcube/rcube_db_sqlsrv.php
+++ b/program/lib/Roundcube/rcube_db_sqlsrv.php
@@ -46,6 +46,18 @@ class rcube_db_sqlsrv extends rcube_db
}
/**
+ * Driver-specific configuration of database connection
+ *
+ * @param array $dsn DSN for DB connections
+ * @param PDO $dbh Connection handler
+ */
+ protected function conn_configure($dsn, $dbh)
+ {
+ // Set date format in case of non-default language (#1488918)
+ $this->query("SET DATEFORMAT ymd");
+ }
+
+ /**
* Return SQL function for current time and date
*
* @param int $interval Optional interval (in seconds) to add/subtract