Код: Выделить всё
std::vector queries;
queries.push_back( "CREATE TABLE X1();" );
queries.push_back( "CREATE TABLE X2();" );
queries.push_back( "CREATE TABLE X3();" );
queries.push_back( "INSERT INTO X! VALUES();" );
queries.push_back( "INSERT INTO X1 VALUES();" );
queries.push_back( "INSERT INTO X2 VALUES();" );
queries.push_back( "INSERT INTO X2 VALUES();" );
queries.push_back( "INSERT INTO X3 VALUES();" );
queries.push_back( "INSERT INTO X3 VALUES();" );
for( std::vector::iterator it = queries.begin(); it < queries.end(); ++ it )
{
res = execute( (*it) );
if( failure )
break;
}
Однако, если вторая или третья команда не удалась, я хотел бы удалить все ранее созданные таблицы, исследовать их и затем начать заново, поскольку продолжать не имеет особого смысла из-за логики программы.
Насколько я знаю, только SQLite поддерживает транзакционный DDL, так как же люди справляются с такими ситуациями?>
Подробнее здесь: https://stackoverflow.com/questions/798 ... on-failure
Мобильная версия