crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> MS SQL невозможно выполнить запрос, подключение к ms sql server 2008
KEDbl_BAH_DAMA
  опции профиля:
сообщение 30.1.2015, 10:44
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 30.1.2015
Пользователь №: 4324

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго времени суток! Уважаемые форумчане, помогите разабраться с одним вопросом...
при попытке подключения к mssql и выполнения запросы выдаёт ошибку... В какую сторону копать...
 #include "widget.h"
#include "ui_widget.h"
#include <QStringList>
#include <QString>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    qDebug()<<QSqlDatabase::drivers();

           QStringList drivers = QSqlDatabase::drivers();
           ui->mode->addItems(drivers);
                     ui->btnDisconnect->setEnabled(false);
                   ui->password->setEchoMode(QLineEdit::Password);
                   ui->scr->setReadOnly(true);
                   connect(ui->btnStart, SIGNAL(clicked()), this, SLOT(start()));
                   connect(ui->bptExec, SIGNAL(clicked()), this, SLOT(query_exec()));
                   connect(ui->btnDisconnect, SIGNAL(clicked()), this, SLOT(discon()));\
                   connect(ui->pbtTekSoed, SIGNAL(clicked()), this, SLOT(soed()));
}

Widget::~Widget()
{
    delete ui;
}


void Widget::start()
{
    ui->scr->clear();
    ui->scr->append(tr("Соединяюсь с базой данных..."));
             db = QSqlDatabase::addDatabase(ui->mode->currentText());
            db.setHostName(ui->host->text());
            db.setDatabaseName(ui->dbname->text());
            db.setPort(ui->port->text().toInt());
            db.setUserName(ui->user->text());
            db.setPassword(ui->password->text());
            if (db.open())
            {
                ui->mode->setEnabled(false);
                ui->host->setEnabled(false);
                ui->dbname->setEnabled(false);
                ui->user->setEnabled(false);
                ui->password->setEnabled(false);
                ui->btnStart->setEnabled(false);
                ui->port->setEnabled(false);
                ui->btnDisconnect->setEnabled(true);
                ui->scr->append(tr("Соединение установлено!"));
            }
            else
            {
                ui->scr->append(tr("Не могу соединиться: "));
                ui->scr->append(db.lastError().text());
                db.removeDatabase(db.connectionName());
            }
           ui->scr->append( tr(
               "При закрытии окна соединение с БД будет завершено."));

       }

void Widget::query_exec()
{
    QSqlQuery sql = QSqlQuery();
    sql.exec(ui->quvery->text());

    if (sql.exec())
    {
        ui->scr->clear();
        ui->scr->append(tr("Запрос выполнен!"));
    }
    else
    {
        ui->scr->append(tr("Ошибка выполнения запроса!  %1").arg(sql.lastError().text()));
    }

    if ( sql.isActive() ) {
               QSqlRecord rec = sql.record();
               ui->scr->append( tr(
                   "В таблице  %1 столбцов: ")
                   .arg(rec.count() ) );

               QString fields;
               for(int j=0; j<rec.count(); j++)
                   fields += rec.fieldName(j) + ", ";

               ui->scr->append(fields);

               ui->scr->append( tr(
                   "В таблице  %1 записей: ")
                   .arg(sql.size() ) );

               model = new QSqlQueryModel();            
               model->setQuery(sql);
                   ui->tableView->setModel(model);
                   ui->tableView->setSortingEnabled(true);
                   ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
           }
    else
    {
               ui->scr->append( tr(
                       "Не могу получить данные:"));
               ui->scr->append(sql.lastError().text());
    }
}

void Widget::discon()
{
    db.close();
    db.removeDatabase(db.connectionName());
    ui->mode->setEnabled(true);
    ui->host->setEnabled(true);
    ui->dbname->setEnabled(true);
    ui->user->setEnabled(true);
    ui->password->setEnabled(true);
    ui->btnStart->setEnabled(true);
     ui->port->setEnabled(true);
    ui->btnDisconnect->setEnabled(false);
}


void Widget::soed()
{   int i;
    QStringList j=QSqlDatabase::connectionNames ();
    ui->scr->append(tr("\n"));
    for(i=0;i<j.size();++i)
    {
    ui->scr->append(tr(" Текущие соединения N %1 - %2 ").arg(i+1).arg(j.at(i)));
    }
    if (db.connectionName()==NULL)
    {
        ui->scr->append(tr("Подключение отсутствует!"));
    }
    ui->scr->append(tr("\n"));
}

void Widget::on_btnClear_clicked()
{
    ui->quvery->clear();
}

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.11.2019, 1:16