summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2005-03-04 08:23:11 +0000
committerwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2005-03-04 08:23:11 +0000
commitb31cf6b3f9744b5cb199a8970dbe3bdedece9c6c (patch)
tree31d249fbfd6190b3b14b6197bdf99080f7b56730
parent005cb1be9e499724622704e4a9a491c599dbb049 (diff)
downloadvdr-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.c17
-rw-r--r--mg_selection.c14
-rw-r--r--mg_selection.h1
-rw-r--r--mg_sync.c4
4 files changed, 26 insertions, 10 deletions
diff --git a/mg_mysql.c b/mg_mysql.c
index 4f8180b..ba3e50f 100644
--- a/mg_mysql.c
+++ b/mg_mysql.c
@@ -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;
diff --git a/mg_sync.c b/mg_sync.c
index c15304a..73f0bce 100644
--- a/mg_sync.c
+++ b/mg_sync.c
@@ -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);