QString db_drivers::queryAlterTable( const QString &tname, const QString &/*fieldsnew*/, const QString &/*fieldsold*/, const QString &fieldsadd,const QString &fieldsdrop, const QString &fieldsmodifynew,const QString &fieldsmodifyold ) { int i; QStringList fl; QString query = ""; QString f; // Для добавления полей fl = split( "\n", fieldsadd ); for (i = 0; i < fl.count(); i++ ){ if ( !query.isEmpty()) query.append("\n"); f = trimm( fl[i] ); if ( !f.isEmpty() ) query.append( queryAlterTableAddField( tname, f ) ); } // Для удаления полей fl = split( "\n", fieldsdrop ); for (i = 0; i < fl.count(); i++ ){ if ( !query.isEmpty()) query.append("\n"); f = trimm( fl[i] ); if ( !f.isEmpty() ) query.append( queryAlterTableDropField( tname, fl[i] ) ); } // Для изменения полей fl = split( "\n", fieldsmodifynew ); for (i = 0; i < fl.count(); i++ ){ if ( !query.isEmpty()) query.append("\n"); query.append( queryAlterTableModifyField( tname, fl[i], fieldsmodifyold.section("\n", i, i ) ) ); } return query; }
/*! * \en * \brief * * \_en \ru * \brief Формирует запрос на обновление структуры таблицы. * * Вызывает последовательность функций * queryAlterTableAddField(), queryAlterTableDropField() и * queryAlterTableModifyField() для каждого поля из списка * полей fieldsadd, fieldsdrop, fieldsmodifynew * * \arg tname (in) имя таблицы в базе данных * \arg fieldsnew (in) * \arg fieldsold (in) * \arg fieldsadd (in) * \arg fieldsdrop (in) * \arg fieldsmodifynew (in) * \arg fieldsmodifyold (in) * \return Последовательность SQL запросов для обновления структуры таблицы, * разделенная "\n" * \_ru */ QString QDataSchemaDriver::queryAlterTable( const QString &tname, const QString &/*fieldsnew*/, const QString &/*fieldsold*/, const QString &fieldsadd,const QString &fieldsdrop, const QString &fieldsmodifynew,const QString &fieldsmodifyold ) { QDS_int i; QStringList fl; QString query = ""; QString f; // Do add fields fl = split( "\n", fieldsadd ); for (i = 0; i < fl.count(); i++ ){ if ( !query.isEmpty()) query.append("\n"); f = trimm( fl[i] ); if ( !f.isEmpty() ) query.append( queryAlterTableAddField( tname, f ) ); } // Do drop fields fl = split( "\n", fieldsdrop ); for (i = 0; i < fl.count(); i++ ){ if ( !query.isEmpty()) query.append("\n"); f = trimm( fl[i] ); if ( !f.isEmpty() ) query.append( queryAlterTableDropField( tname, fl[i] ) ); } // Do modify fields fl = split( "\n", fieldsmodifynew ); for (i = 0; i < fl.count(); i++ ){ if ( !query.isEmpty()) query.append("\n"); query.append( queryAlterTableModifyField( tname, fl[i], fieldsmodifyold.section("\n", i, i ) ) ); } return query; }