author | eilers <eilers> | 2004-10-26 11:18:23 (UTC) |
---|---|---|
committer | eilers <eilers> | 2004-10-26 11:18:23 (UTC) |
commit | 8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee (patch) (unidiff) | |
tree | 04505b36b73f00bcd31666d30bc7cd80883729e6 /noncore | |
parent | cd3245ade209b4672ab5c51003aa66b5908c67a1 (diff) | |
download | opie-8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee.zip opie-8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee.tar.gz opie-8d8b23bff18b8afd42840ef1d4574ef3ea9f8cee.tar.bz2 |
Protect against error in database format. Recover to old if database was
unreadable ..
-rw-r--r-- | noncore/tools/pimconverter/converter.cpp | 22 |
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 | |||
240 | cmd = tr( "No SQLite2 database could be found!" ); | 240 | cmd = tr( "No SQLite2 database could be found!" ); |
241 | error = true; | 241 | error = true; |
242 | } | 242 | } |
243 | 243 | ||
244 | if( QFile::exists( dest ) ) { | 244 | if( QFile::exists( dest ) ) { |
245 | cmd = tr( "The database is already converted!" ); | 245 | cmd = tr( "The database is already converted!" ); |
246 | error = true; | 246 | error = true; |
247 | } | 247 | } |
248 | 248 | ||
249 | 249 | ||
250 | if ( error ){ | 250 | if ( error ){ |
251 | QMessageBox::critical( this, tr("Pim-Converter"), | 251 | QMessageBox::critical( this, tr("Pim-Converter"), |
252 | tr("<qt>Conversion not possible: \n" | 252 | tr("<qt>Conversion not possible: <br>" |
253 | "Problem: %1</qt>").arg(cmd) ); | 253 | "Problem: %1</qt>").arg(cmd) ); |
254 | return error; | 254 | return error; |
255 | } | 255 | } |
256 | 256 | ||
257 | 257 | ||
258 | /* | 258 | /* |
259 | * Move it over | 259 | * Move it over |
260 | */ | 260 | */ |
261 | cmd = "mv " + Global::shellQuote(src) + " " + Global::shellQuote(dest); | 261 | cmd = "mv " + Global::shellQuote(src) + " " + Global::shellQuote(dest); |
262 | if( ::system( cmd ) != 0 ){ | 262 | if( ::system( cmd ) != 0 ){ |
263 | error = true; | 263 | error = true; |
264 | } | 264 | } |
265 | 265 | ||
266 | 266 | ||
267 | /* | 267 | /* |
268 | * Convert it | 268 | * Convert it |
269 | */ | 269 | */ |
270 | if ( !error ){ | 270 | if ( !error ){ |
271 | cmd = "sqlite " + Global::shellQuote(dest) + " .dump | sqlite3 " + Global::shellQuote(src); | 271 | cmd = "sqlite " + Global::shellQuote(dest) + " .dump | sqlite3 " + Global::shellQuote(src); |
272 | if ( ::system( cmd ) != 0 ){ | 272 | if ( ::system( cmd ) != 0 ){ |
273 | error = true; | 273 | error = true; |
274 | } | 274 | } |
275 | } | 275 | } |
276 | 276 | ||
277 | |||
278 | /* | ||
279 | * Check whether conversion really worked. If not, move old database back to recover it | ||
280 | */ | ||
281 | if ( !QFile::exists( src ) ){ | ||
282 | cmd = "mv " + Global::shellQuote(dest) + " " + Global::shellQuote(src); | ||
283 | if ( ::system( cmd ) != 0 ){ | ||
284 | } | ||
285 | error = true; | ||
286 | cmd = "Database-Format is not V2!?"; | ||
287 | } | ||
288 | |||
277 | if ( error ){ | 289 | if ( error ){ |
278 | QMessageBox::critical( this, tr("Pim-Converter"), | 290 | QMessageBox::critical( this, tr("Pim-Converter"), |
279 | tr("<qt>An internal error occurred: " | 291 | tr("<qt>An internal error occurred: <br>" |
280 | "Converting the database was impossible! " | 292 | "Converting the database was impossible! <br>" |
281 | "Command: '%1' </qt>").arg(cmd) ); | 293 | "Command/Reason: '%1' </qt>").arg(cmd) ); |
282 | 294 | ||
283 | } | 295 | } |
296 | |||
297 | |||
284 | } | 298 | } |
285 | 299 | ||
286 | 300 | ||
287 | 301 | ||
288 | void Converter::start_upgrade() | 302 | void Converter::start_upgrade() |
289 | { | 303 | { |
290 | odebug << "Start upgrading" << oendl; | 304 | odebug << "Start upgrading" << oendl; |
291 | switch( QMessageBox::warning( this, tr("Pim-Converter"), | 305 | switch( QMessageBox::warning( this, tr("Pim-Converter"), |
292 | tr("<qt>Are you really sure that you " | 306 | tr("<qt>Are you really sure that you " |
293 | "want to convert your database from " | 307 | "want to convert your database from " |
294 | "sqlite V2 to sqlite V3?</qt>"), | 308 | "sqlite V2 to sqlite V3?</qt>"), |
295 | QMessageBox::Ok | QMessageBox::Default, | 309 | QMessageBox::Ok | QMessageBox::Default, |