summaryrefslogtreecommitdiff
path: root/noncore
authoreilers <eilers>2004-10-26 11:18:23 (UTC)
committer eilers <eilers>2004-10-26 11:18:23 (UTC)
commit8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee (patch) (side-by-side diff)
tree04505b36b73f00bcd31666d30bc7cd80883729e6 /noncore
parentcd3245ade209b4672ab5c51003aa66b5908c67a1 (diff)
downloadopie-8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee.zip
opie-8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee.tar.gz
opie-8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee.tar.bz2
Protect against error in database format. Recover to old if database was
unreadable ..
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/pimconverter/converter.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/noncore/tools/pimconverter/converter.cpp b/noncore/tools/pimconverter/converter.cpp
index e8bd475..d92f382 100644
--- a/noncore/tools/pimconverter/converter.cpp
+++ b/noncore/tools/pimconverter/converter.cpp
@@ -240,56 +240,70 @@ bool Converter::sqliteMoveAndConvert( const QString& name, const QString& src, c
cmd = tr( "No SQLite2 database could be found!" );
error = true;
}
if( QFile::exists( dest ) ) {
cmd = tr( "The database is already converted!" );
error = true;
}
if ( error ){
QMessageBox::critical( this, tr("Pim-Converter"),
- tr("<qt>Conversion not possible: \n"
+ tr("<qt>Conversion not possible: <br>"
"Problem: %1</qt>").arg(cmd) );
return error;
}
/*
* Move it over
*/
cmd = "mv " + Global::shellQuote(src) + " " + Global::shellQuote(dest);
if( ::system( cmd ) != 0 ){
error = true;
}
/*
* Convert it
*/
if ( !error ){
cmd = "sqlite " + Global::shellQuote(dest) + " .dump | sqlite3 " + Global::shellQuote(src);
if ( ::system( cmd ) != 0 ){
error = true;
}
}
+
+ /*
+ * Check whether conversion really worked. If not, move old database back to recover it
+ */
+ if ( !QFile::exists( src ) ){
+ cmd = "mv " + Global::shellQuote(dest) + " " + Global::shellQuote(src);
+ if ( ::system( cmd ) != 0 ){
+ }
+ error = true;
+ cmd = "Database-Format is not V2!?";
+ }
+
if ( error ){
QMessageBox::critical( this, tr("Pim-Converter"),
- tr("<qt>An internal error occurred: "
- "Converting the database was impossible! "
- "Command: '%1' </qt>").arg(cmd) );
+ tr("<qt>An internal error occurred: <br>"
+ "Converting the database was impossible! <br>"
+ "Command/Reason: '%1' </qt>").arg(cmd) );
}
+
+
}
void Converter::start_upgrade()
{
odebug << "Start upgrading" << oendl;
switch( QMessageBox::warning( this, tr("Pim-Converter"),
tr("<qt>Are you really sure that you "
"want to convert your database from "
"sqlite V2 to sqlite V3?</qt>"),
QMessageBox::Ok | QMessageBox::Default,