Public Member Functions | Public Attributes

CreateView Class Reference

#include <createview.h>

List of all members.

Public Member Functions

 CreateView (QWidget *parent=0)
 ~CreateView ()
void generateQuery ()
void setDbName ()
void startAlter ()

Public Attributes

QSqlDatabase db
QString dbName
QString viewToAlter

Detailed Description

Definition at line 11 of file createview.h.


Constructor & Destructor Documentation

CreateView::CreateView ( QWidget *  parent = 0 ) [explicit]

Definition at line 8 of file createview.cpp.

                                      :
        QDialog(parent),
        ui(new Ui::CreateView)
{
    ui->setupUi(this);    
    isNew = true;
    ui->txtGeneratedQuery->setReadOnly(true);
    ui->txtGeneratedQuery->setLexer(new QsciLexerSQL);
    ui->txtGeneratedQuery->setFolding(QsciScintilla::PlainFoldStyle, 2);
    ui->txtGeneratedQuery->setAutoCompletionSource(QsciScintilla::AcsAll);
    ui->txtGeneratedQuery->setAutoCompletionFillupsEnabled(true);
    ui->txtGeneratedQuery->setBraceMatching(QsciScintilla::StrictBraceMatch);
    ui->txtGeneratedQuery->setCallTipsVisible(true);
    ui->txtGeneratedQuery->setCallTipsStyle(QsciScintilla::CallTipsNoContext);
    ui->txtGeneratedQuery->setCaretLineVisible(true);
    ui->txtGeneratedQuery->setMarginWidth(1, 40);
    ui->txtGeneratedQuery->setMarginLineNumbers(1, true);
    ui->txtViewQuery->setLexer(new QsciLexerSQL);
    ui->txtViewQuery->setFolding(QsciScintilla::PlainFoldStyle, 2);
    ui->txtViewQuery->setAutoCompletionSource(QsciScintilla::AcsAll);
    ui->txtViewQuery->setAutoCompletionFillupsEnabled(true);
    ui->txtViewQuery->setBraceMatching(QsciScintilla::StrictBraceMatch);
    ui->txtViewQuery->setCallTipsVisible(true);
    ui->txtViewQuery->setCallTipsStyle(QsciScintilla::CallTipsNoContext);
    ui->txtViewQuery->setCaretLineVisible(true);
    ui->txtViewQuery->setMarginWidth(1, 40);
    ui->txtViewQuery->setMarginLineNumbers(1, true);
}
CreateView::~CreateView (  )

Definition at line 37 of file createview.cpp.

{
    delete ui;
}

Member Function Documentation

void CreateView::generateQuery (  )

Definition at line 42 of file createview.cpp.

References dbName, and viewToAlter.

Referenced by startAlter().

                               {
    QString newViewSnippet = tr("CREATE\n/*[ALGORITHM = {UNDEFINED | MERGE |TEMPTABLE}]\n[DEFINER = { user | CURRENT_USER ]}\n [SQL_SECURITY = {DESIGNER | INVOKER}]*/\nVIEW `%1`.`%2` AS\n(\n%3\n)").arg(dbName, ui->txtViewName->text(), ui->txtViewQuery->text());
    if (!isNew) {
        newViewSnippet = tr("DROP VIEW IF EXISTS `%1`.`%2`;\n%3")
                         .arg(dbName, viewToAlter, ui->txtViewQuery->text());
    }
    ui->txtGeneratedQuery->setText(newViewSnippet);

}
void CreateView::setDbName (  )

Definition at line 62 of file createview.cpp.

References dbName.

                           {
    ui->txtDbName->setText(dbName);
}
void CreateView::startAlter (  )

Definition at line 87 of file createview.cpp.

References db, dbName, generateQuery(), and viewToAlter.

                            {
    isNew = false;
    ui->txtViewName->setText(viewToAlter);
    ui->txtDbName->setText(dbName);
    ui->txtViewName->setReadOnly(true);
    db.open();
    if (db.open()) {
        QSqlQuery qu(db);
        qu.exec(tr("use `%1`").arg(dbName));
        qu.clear();
        if (qu.exec(tr("SHOW CREATE VIEW `%1`.`%2`").arg(dbName, viewToAlter))) {
            qu.first();
            ui->txtViewQuery->setText(qu.value(1).toString());
            generateQuery();
        } else {
            QMessageBox::warning(this, "Error", tr("There was an error when generating the view. \n%1").arg(qu.lastError().text()));
        }
    }
}

Member Data Documentation

QSqlDatabase CreateView::db

Definition at line 18 of file createview.h.

Referenced by startAlter().

Definition at line 19 of file createview.h.

Referenced by generateQuery(), setDbName(), and startAlter().

Definition at line 20 of file createview.h.

Referenced by generateQuery(), and startAlter().


The documentation for this class was generated from the following files: