示例#1
0
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;
}
示例#2
0
/*!
 * \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;
}