diff options
author | wr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-03-04 08:23:11 +0000 |
---|---|---|
committer | wr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-03-04 08:23:11 +0000 |
commit | b31cf6b3f9744b5cb199a8970dbe3bdedece9c6c (patch) | |
tree | 31d249fbfd6190b3b14b6197bdf99080f7b56730 | |
parent | 005cb1be9e499724622704e4a9a491c599dbb049 (diff) | |
download | vdr-plugin-muggle-b31cf6b3f9744b5cb199a8970dbe3bdedece9c6c.tar.gz vdr-plugin-muggle-b31cf6b3f9744b5cb199a8970dbe3bdedece9c6c.tar.bz2 |
less warnings and tries if we cannot create the data base
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/branches/0.1.3-wr@535 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r-- | mg_mysql.c | 17 | ||||
-rw-r--r-- | mg_selection.c | 14 | ||||
-rw-r--r-- | mg_selection.h | 1 | ||||
-rw-r--r-- | mg_sync.c | 4 |
4 files changed, 26 insertions, 10 deletions
@@ -3,7 +3,7 @@ * * \version $Revision: 1.2 $ * \date $Date: 2005-02-10 17:42:54 +0100 (Thu, 10 Feb 2005) $ - * \author Ralf Klueber, Lars von Wedel, Andreas Kellner + * \author Ralf Klueber, Lars von Wedel, Andreas Kellner, Wolfgang Rohdewald * \author file owner: $Author: LarsAC $ */ @@ -14,6 +14,7 @@ #include <stdarg.h> #include <sys/stat.h> #include <sys/types.h> +#include <time.h> #include "vdr_setup.h" @@ -357,14 +358,23 @@ void mgmySql::FillTables() } } +time_t createtime; + void mgmySql::Create() { + createtime=time(0); // create database and tables mgDebug(1,"Dropping and recreating database %s",the_setup.DbName); int len = sizeof( db_cmds ) / sizeof( char* ); for( int i=0; i < len; i ++ ) { - exec_sql( string( db_cmds[i] ) ); + if (mysql_query (m_db, db_cmds[i])) + { + mgWarning("SQL Error in %s: %s",db_cmds[i],mysql_error (m_db)); + std::cout<<"ERROR in " << db_cmds[i] <<std::endl; + mysql_query(m_db, "DROP DATABASE IF EXISTS GiantDisc;"); // clean up + return; + } } m_database_found=true; Use(); @@ -487,7 +497,8 @@ mgmySql::Connect () if (m_database_found) Use(); else - mgWarning("Database %s does not exist",the_setup.DbName); + if (!createtime) + mgWarning("Database %s does not exist",the_setup.DbName); } if (!needGenre2_set && Connected()) { diff --git a/mg_selection.c b/mg_selection.c index 223cebc..14e5c68 100644 --- a/mg_selection.c +++ b/mg_selection.c @@ -571,10 +571,13 @@ mgSelection::setOrder(mgOrder* o) mgWarning("mgSelection::setOrder(0)"); } + void mgSelection::InitFrom(mgValmap& nv) { - if (m_db.ServerConnected() && !m_db.Connected()) + extern time_t createtime; + if (m_db.ServerConnected() && !m_db.Connected() + && (time(0)>createtime+10)) { char *b; asprintf(&b,tr("Create database %s?"),the_setup.DbName); @@ -584,9 +587,12 @@ mgSelection::InitFrom(mgValmap& nv) argv[0]="."; argv[1]=0; m_db.Create(); - mgSync *s = new mgSync; - s->Sync(argv); - delete s; + if (Interface->Confirm(tr("Import tracks?"))) + { + mgSync *s = new mgSync; + s->Sync(argv); + delete s; + } } free(b); } diff --git a/mg_selection.h b/mg_selection.h index ff6b288..af897e0 100644 --- a/mg_selection.h +++ b/mg_selection.h @@ -417,6 +417,7 @@ class mgSelection unsigned int keycount(mgKeyTypes kt); vector <const char *> choices(mgOrder *o,unsigned int level, unsigned int *current); unsigned int valcount (string val); + bool Connected() { return m_db.Connected(); } private: mutable map <mgKeyTypes, map<string,string> > map_values; @@ -295,9 +295,7 @@ void mgSync::Sync(char * const * path_argv, bool delete_missing) { if (!m_db.Connected()) - { - mgError("Cannot connect to data base"); - } + return; unsigned int count=0; m_db.CreateFolderFields(); chdir(the_setup.ToplevelDir); |