connectivity/source/drivers/firebird/Connection.cxx |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit 3173e00f428ea8cf79f36efb38d15028aca01d4a
Author:     Tamas Bunth <tamas.bu...@collabora.co.uk>
AuthorDate: Sat Jul 13 16:39:31 2019 +0200
Commit:     Xisco Faulí <xiscofa...@libreoffice.org>
CommitDate: Wed Jul 17 12:26:55 2019 +0200

    tdf#123150: Firebird: set UTF-8 client connection
    
    There are two options related to character sets when attaching or
    creating a database with the C API:
    
    - isc_dpb_lc_ctype: Sets the character set of the connection between the
    Firebird server and the Client (which is the sdbc driver in that case).
    That is required in order to pass UTF 8 literals correctly.
    
    - isc_dpb_set_db_charset: Sets the default character set of the database
    itself. It has the same effect as the following SQL statement:
     ALTER DATABASE SET DEFAULT CHARACTER SET <Charset>
    
    We need to set both of them to UTF-8.
    
    Change-Id: Ia9e5a4b87a3997c084be8abb68c2de813fbd631b
    Reviewed-on: https://gerrit.libreoffice.org/75557
    Reviewed-by: Tamás Bunth <btom...@gmail.com>
    Tested-by: Tamás Bunth <btom...@gmail.com>
    (cherry picked from commit c19c206cf42ac178906a855ae3cd198e0fcf8d14)
    Reviewed-on: https://gerrit.libreoffice.org/75755
    Reviewed-by: Michael Stahl <michael.st...@cib.de>
    Tested-by: Jenkins

diff --git a/connectivity/source/drivers/firebird/Connection.cxx 
b/connectivity/source/drivers/firebird/Connection.cxx
index ba2fba974d78..c707ca2c15ad 100644
--- a/connectivity/source/drivers/firebird/Connection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -227,11 +227,15 @@ void Connection::construct(const OUString& url, const 
Sequence< PropertyValue >&
             dpbBuffer.push_back(1); // 1 byte long
             dpbBuffer.push_back(FIREBIRD_SQL_DIALECT);
 
-            // set UTF8 as default character set
+            // set UTF8 as default character set of the database
             const char sCharset[] = "UTF8";
             dpbBuffer.push_back(isc_dpb_set_db_charset);
             dpbBuffer.push_back(sizeof(sCharset) - 1);
             dpbBuffer.append(sCharset);
+            // set UTF8 as default character set of the connection
+            dpbBuffer.push_back(isc_dpb_lc_ctype);
+            dpbBuffer.push_back(sizeof(sCharset) - 1);
+            dpbBuffer.append(sCharset);
 
             // Do any more dpbBuffer additions here
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to