diff options
author | Tamas Bunth <tamas.bunth@collabora.co.uk> | 2019-07-13 16:39:31 +0200 |
---|---|---|
committer | Tamás Bunth <btomi96@gmail.com> | 2019-07-13 21:21:18 +0200 |
commit | c19c206cf42ac178906a855ae3cd198e0fcf8d14 (patch) | |
tree | bdc9f895c6ea6061bb2130dcb3bd963504d1b37b /connectivity/source | |
parent | a0d85d526c7a4407ac555a35730afd5003243bcb (diff) |
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 <btomi96@gmail.com>
Tested-by: Tamás Bunth <btomi96@gmail.com>
Diffstat (limited to 'connectivity/source')
-rw-r--r-- | connectivity/source/drivers/firebird/Connection.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx index b12eafb35cdf..6c2a6862e8bd 100644 --- a/connectivity/source/drivers/firebird/Connection.cxx +++ b/connectivity/source/drivers/firebird/Connection.cxx @@ -222,11 +222,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 |