Date: Tuesday, February 28, 2006 @ 11:53:33
Author: csaba
Path: /cvsroot/carob/libmysequoia
Modified: include/CarobMySQL.hpp (1.26 -> 1.27) src/CarobMySQL.cpp (1.54
-> 1.55) src/MySQLAPI.cpp (1.48 -> 1.49)
Implemented mysql_set_character_set()
------------------------+
include/CarobMySQL.hpp | 5 +++++
src/CarobMySQL.cpp | 22 ++++++++++++++++++++++
src/MySQLAPI.cpp | 19 +++++++++++++++++++
3 files changed, 46 insertions(+)
Index: libmysequoia/include/CarobMySQL.hpp
diff -u libmysequoia/include/CarobMySQL.hpp:1.26
libmysequoia/include/CarobMySQL.hpp:1.27
--- libmysequoia/include/CarobMySQL.hpp:1.26 Wed Feb 22 15:23:57 2006
+++ libmysequoia/include/CarobMySQL.hpp Tue Feb 28 11:53:33 2006
@@ -204,6 +204,11 @@
void push_init_command(const char *cmd);
/**
+ * Set the character set for the connection
+ */
+ int set_character_set(const char *name);
+
+ /**
* Creates a prepared statement
*/
CarobStmt *createPreparedStatment();
Index: libmysequoia/src/CarobMySQL.cpp
diff -u libmysequoia/src/CarobMySQL.cpp:1.54
libmysequoia/src/CarobMySQL.cpp:1.55
--- libmysequoia/src/CarobMySQL.cpp:1.54 Thu Feb 23 13:58:31 2006
+++ libmysequoia/src/CarobMySQL.cpp Tue Feb 28 11:53:33 2006
@@ -731,6 +731,28 @@
LOG4CXX_DEBUG(logger, "Leaving push_init_command.");
}
+int
+CarobMYSQL::set_character_set(const char *name)
+{
+ LOG4CXX_DEBUG(logger, "Entering set_character_set: name=" << name);
+
+ bool result = false;
+ char buff[254];
+
+ snprintf(buff, sizeof(buff), "SET NAMES %s", name);
+ if ((result=real_query(buff, strlen(buff))) == true)
+ {
+ mysqlPtr->options.charset_name = strdup(name);
+ }
+ else
+ {
+ set_error(CR_CANT_READ_CHARSET, SQLT_UNKNOWN);
+ }
+
+ LOG4CXX_DEBUG(logger, "Leaving set_character_set: result=" << result);
+ return result == true ? 0 : 1;
+}
+
MYSQL *
CarobMYSQL::getMYSQL ()
{
Index: libmysequoia/src/MySQLAPI.cpp
diff -u libmysequoia/src/MySQLAPI.cpp:1.48 libmysequoia/src/MySQLAPI.cpp:1.49
--- libmysequoia/src/MySQLAPI.cpp:1.48 Thu Feb 23 16:53:45 2006
+++ libmysequoia/src/MySQLAPI.cpp Tue Feb 28 11:53:33 2006
@@ -902,6 +902,25 @@
return result;
}
+/* Set the default character set for the current connection */
+int STDCALL
+mysql_set_character_set(MYSQL *mysql, const char *name)
+{
+ LOG4CXX_DEBUG(logger, "Entering mysql_set_character_set: mysql=" << mysql <<
" name=" << name);
+
+ int result;
+
+ if (mysql)
+ {
+ result = getCarob(mysql)->set_character_set(name);
+ }
+ else
+ result = 1;
+
+ LOG4CXX_DEBUG(logger, "Leaving mysql_set_character_set: result=" << result);
+ return result;
+}
+
/* Returns the name of the default character set for the connection. */
const char *
mysql_character_set_name (MYSQL * mysql)
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits