diff options
-rw-r--r-- | mg_db.c | 2 | ||||
-rw-r--r-- | mg_db.h | 1 | ||||
-rw-r--r-- | mg_db_gd_mysql.c | 26 | ||||
-rw-r--r-- | mg_db_gd_mysql.h | 1 | ||||
-rw-r--r-- | mg_db_gd_pg.c | 15 | ||||
-rw-r--r-- | mg_db_gd_pg.h | 1 | ||||
-rw-r--r-- | mg_db_gd_sqlite.c | 6 | ||||
-rw-r--r-- | mg_db_gd_sqlite.h | 1 |
8 files changed, 34 insertions, 19 deletions
@@ -325,6 +325,8 @@ mgDb::Connect () m_database_found = Create(); } } + if (m_database_found) + m_database_found = SetCharset(); return m_database_found; } @@ -206,6 +206,7 @@ class mgDb { time_t m_create_time; string get_col0(const string sql); virtual bool Create() = 0; + virtual bool SetCharset() = 0; void FillTables(); virtual void StartTransaction() {}; virtual void Commit() {}; diff --git a/mg_db_gd_mysql.c b/mg_db_gd_mysql.c index 78bee52..d8eaae7 100644 --- a/mg_db_gd_mysql.c +++ b/mg_db_gd_mysql.c @@ -416,6 +416,20 @@ mgDbGd::Commit() } bool +mgDbGd::SetCharset() +{ + const char *cmd; + if (the_setup.utf8) + cmd="SET NAMES utf8"; + else + cmd="SET NAMES latin1"; + mgQuery q0(m_db,cmd); + if (!q0.ErrorMessage().empty()) + return false; + return true; +} + +bool mgDbGd::Create() { if (!ServerConnect()) @@ -430,18 +444,6 @@ mgDbGd::Create() if (!q.ErrorMessage().empty()) return false; - if (the_setup.utf8) - { - const char *cmd; - if (the_setup.utf8) - cmd="SET NAMES utf8"; - else - cmd="SET NAMES latin1"; - mgQuery q0(m_db,cmd); - if (!q0.ErrorMessage().empty()) - return false; - } - sprintf(buffer,"CREATE DATABASE %s",the_setup.DbName); mgQuery q1(m_db,buffer); if (!q1.ErrorMessage().empty()) diff --git a/mg_db_gd_mysql.h b/mg_db_gd_mysql.h index 803320d..2379222 100644 --- a/mg_db_gd_mysql.h +++ b/mg_db_gd_mysql.h @@ -27,6 +27,7 @@ class mgDbGd : public mgDb { bool ServerConnect(); bool ConnectDatabase(); bool Create(); + bool SetCharset(); int AddToCollection( const string Name,const vector<mgItem*>&items,mgParts* what); int RemoveFromCollection( const string Name,const vector<mgItem*>&items,mgParts* what); diff --git a/mg_db_gd_pg.c b/mg_db_gd_pg.c index f41339b..68a9482 100644 --- a/mg_db_gd_pg.c +++ b/mg_db_gd_pg.c @@ -252,21 +252,22 @@ mgDbGd::Commit() bool -mgDbGd::Create() +mgDbGd::SetCharset() { - - if (the_setup.utf8) - { const char *cmd; if (the_setup.utf8) - cmd="SET NAMES UTF8"; + cmd="SET NAMES 'UTF8'"; else - cmd="SET NAMES LATIN1"; + cmd="SET NAMES 'LATIN1'"; mgQuery q0(m_db,cmd); if (!q0.ErrorMessage().empty()) return false; - } + return true; +} +bool +mgDbGd::Create() +{ // create database and tables int len = sizeof( db_cmds ) / sizeof( char* ); for( int i=0; i < len; i ++ ) diff --git a/mg_db_gd_pg.h b/mg_db_gd_pg.h index 7cf3221..d90ba30 100644 --- a/mg_db_gd_pg.h +++ b/mg_db_gd_pg.h @@ -50,6 +50,7 @@ class mgDbGd : public mgDb { bool ServerConnect(); bool ConnectDatabase(); bool Create(); + bool SetCharset(); bool NeedGenre2(); long thread_id() { return -1; } diff --git a/mg_db_gd_sqlite.c b/mg_db_gd_sqlite.c index 2945fdd..6fb3c22 100644 --- a/mg_db_gd_sqlite.c +++ b/mg_db_gd_sqlite.c @@ -290,6 +290,12 @@ mgSubstring(sqlite3_context *context, int argc, sqlite3_value **argv) } bool +mgDbGd::SetCharset() +{ + return true; +} + +bool mgDbGd::ConnectDatabase () { struct stat stbuf; diff --git a/mg_db_gd_sqlite.h b/mg_db_gd_sqlite.h index a21ac01..aaf8b3b 100644 --- a/mg_db_gd_sqlite.h +++ b/mg_db_gd_sqlite.h @@ -48,6 +48,7 @@ class mgDbGd : public mgDb { ~mgDbGd(); bool ConnectDatabase(); bool Create(); + bool SetCharset(); bool NeedGenre2(); long thread_id() { return -1; } |