All pastes #914569 Raw Edit

Anonymous

public text v1 · immutable
#914569 ·published 2008-02-23 00:12 UTC
rendered paste body
Here is my database problem, I have a variable database which is a sqlite implementation of a QSQLDatabase object.
I dont know why but I am able to create the file but I the function database->table() returns an empty QStringList
right after fulling it. I tested and I am able to get the lastInsertID using the same object... it is the 
database->table() function that does not gives me what I needed...



Here is a part of the code, the important lines are the last ten...


        QStringList tables;
        tables << "ingredient_info" << "ingredient_list" << "ingredient_properties" << "ingredient_weights" << "ingredients" << "recipes" << "unit_list" << "units" << "units_conversion" << "categories" << "category_list" << "authors" << "author_list" << "db_info" << "prep_methods" << "ingredient_groups" << "yield_types" << "prep_method_list" << "ratings" << "rating_criteria" << "rating_criterion_list";

        QStringList existingTableList = database->tables();
        for ( QStringList::Iterator it = tables.begin(); it != tables.end(); ++it ) {
                bool found = false;

                for ( QStringList::Iterator ex_it = existingTableList.begin(); ( ( ex_it != existingTableList.end() ) && ( !found ) ); ++ex_it ) {
                        found = ( *ex_it == *it );
                }

                if ( !found ) {
                        kDebug() << "Recreating missing table: " << *it << "\n";
                        createTable( *it );
                }
        }
        QSqlQuery query("SELECT lastInsertID()",*database);
        if ( query.isActive() && query.first() )
                kDebug() << "Test 1 :" << query.value(0).toInt() << endl;

        QStringList newTableList = database->tables();
        if ( newTableList.isEmpty() ){
                kDebug() << "Test 2 :" << endl;
                return false;
                }


Here is the result :

krecipes(11363) QSqlRecipeDB::connect: "Définition des paramètres. Appel de « db->open() »"
krecipes(11363) QSQLiteDB::executeQuery: SQLite error:  no such table: db_info
(Query:  "SELECT ver FROM db_info" )
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "ingredient_info"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "ingredient_list"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "ingredient_properties"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "ingredient_weights"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "ingredients"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "recipes"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "unit_list"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "units"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "units_conversion"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "categories"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "category_list"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "authors"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "author_list"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "db_info"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "prep_methods"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "ingredient_groups"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "yield_types"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "prep_method_list"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "ratings"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "rating_criteria"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Recreating missing table:  "rating_criterion_list"
krecipes(11363) QSqlRecipeDB::checkIntegrity: Test 1 : 1
krecipes(11363) QSqlRecipeDB::checkIntegrity: Test 2 :
krecipes(11363): "Impossible d'ouvrir la base de données" .  "Arrêt"