[BUGFIX] ADOdb: Set charset properly 83/32883/9
authorAndreas Fernandez <andreas.fernandez@aspedia.de>
Fri, 19 Sep 2014 11:55:16 +0000 (13:55 +0200)
committerMarkus Klein <klein.t3@reelworx.at>
Wed, 5 Nov 2014 00:29:52 +0000 (01:29 +0100)
Using ADOdb, the charset might not be set properly, since every
database driver needs to define their own "SetCharSet" method. Every
driver extends from ADOConnection. "SetCharSet" of this class just
returns FALSE.

Resolves: #61738
Releases: master, 6.2
Change-Id: Ia9cef4fa3da76523de883ed7faa5aaebde4b9e9b
Reviewed-on: http://review.typo3.org/32883
Reviewed-by: Tymoteusz Motylewski <t.motylewski@gmail.com>
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
typo3/sysext/adodb/README.txt
typo3/sysext/adodb/adodb/adodb.inc.php

index 26a4652..5399ce0 100644 (file)
@@ -3,7 +3,11 @@ various DBMS we are supporting with TYPO3.
 
 Latest version may be downloaded: on http://adodb.sourceforge.net/
 
-BEWARE: At least in version 5.18 and below some methods are not properly
+BEWARE: At least in version 5.19 and below some methods are not properly
 extending their parent's method signature and cause PHP warnings.
-
 Please apply patch from http://forge.typo3.org/issues/48034 if needed.
+
+The charset is not set properly for every driver, so another patch
+is required: https://forge.typo3.org/issues/61738
+There is also a pull request for this issue so this might be fixed in
+the next release: https://github.com/ADOdb/ADOdb/pull/39
\ No newline at end of file
index e9011e9..04bc8e1 100644 (file)
@@ -2037,7 +2037,8 @@ if (!defined('_ADODB_LAYER')) {
 
        function SetCharSet($charset)
        {
-               return false;
+               $this->charSet = $charset;
+               return TRUE;
        }
 
        function IfNull( $field, $ifNull )
@@ -2716,7 +2717,7 @@ http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_1
        /**
        * Will select the supplied $page number from a recordset, given that it is paginated in pages of
        * $nrows rows per page. It also saves two boolean values saying if the given page is the first
-       * and/or last one of the recordset. Added by Iván Oliva to provide recordset pagination.
+       * and/or last one of the recordset. Added by Iván Oliva to provide recordset pagination.
        *
        * See docs-adodb.htm#ex8 for an example of usage.
        *
@@ -2743,7 +2744,7 @@ http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_1
        /**
        * Will select the supplied $page number from a recordset, given that it is paginated in pages of
        * $nrows rows per page. It also saves two boolean values saying if the given page is the first
-       * and/or last one of the recordset. Added by Iván Oliva to provide recordset pagination.
+       * and/or last one of the recordset. Added by Iván Oliva to provide recordset pagination.
        *
        * @param secs2cache     seconds to cache data, set to 0 to force query
        * @param sql
@@ -2943,9 +2944,9 @@ http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_1
        var $_obj;                              /** Used by FetchObj */
        var $_names;                    /** Used by FetchObj */
 
-       var $_currentPage = -1; /** Added by Iván Oliva to implement recordset pagination */
-       var $_atFirstPage = false;      /** Added by Iván Oliva to implement recordset pagination */
-       var $_atLastPage = false;       /** Added by Iván Oliva to implement recordset pagination */
+       var $_currentPage = -1; /** Added by Iván Oliva to implement recordset pagination */
+       var $_atFirstPage = false;      /** Added by Iván Oliva to implement recordset pagination */
+       var $_atLastPage = false;       /** Added by Iván Oliva to implement recordset pagination */
        var $_lastPageNo = -1;
        var $_maxRecordCount = 0;
        var $datetime = false;