Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подключение к базе данных на виртуальной машине (QODBC)
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
Turbo
Всем доброго времени суток!
Пытаюсь подключиться к базе данных на виртуальной машине таким образом


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <C:\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtSql\qsqldatabase.h>
#include "QSqlError"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

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

void MainWindow::on_pushButton_clicked(){
db=QSqlDatabase::addDatabase("QODBC");
db.setHostName(ui->lineEdit->text());
db.setDatabaseName(ui->lineEdit_2->text());
db.setUserName(ui->lineEdit_3->text());
db.setPassword(ui->lineEdit_4->text());
db.setPort(1433);
db.setConnectOptions("SQL_ATTR_ACCESS_MODE=SQL_MODE_READ_ONLY;SQL_ATTR_TRACE=SQL_OPT_TRACE_ON");
if(!db.open()){
qDebug() << "Can't open DB: " << db.lastError().text();
}
else {
ui->lineEdit_5->setText("Good");
}
db.close();
}

Выдается ошибка:
Can't open DB: "[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect"

Что я делаю не так?
Алексей1153
комментарий не по теме:
Цитата(Turbo @ 12.3.2012, 23:17) *
#include <C:\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtSql\qsqldatabase.h>

не нужно так делать - будет мешаться )

пусть так
#include <QtSql\qsqldatabase.h>


Turbo
Спасибо, я это изменил, но разницы никакой не заметил, мою проблему это не решило
zloiia
Цитата(Turbo @ 12.3.2012, 21:17) *
Всем доброго времени суток!
Пытаюсь подключиться к базе данных на виртуальной машине таким образом


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <C:\QtSDK\Desktop\Qt\4.8.0\mingw\include\QtSql\qsqldatabase.h>
#include "QSqlError"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

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

void MainWindow::on_pushButton_clicked(){
db=QSqlDatabase::addDatabase("QODBC");
db.setHostName(ui->lineEdit->text());
db.setDatabaseName(ui->lineEdit_2->text());
db.setUserName(ui->lineEdit_3->text());
db.setPassword(ui->lineEdit_4->text());
db.setPort(1433);
db.setConnectOptions("SQL_ATTR_ACCESS_MODE=SQL_MODE_READ_ONLY;SQL_ATTR_TRACE=SQL_OPT_TRACE_ON");
if(!db.open()){
qDebug() << "Can't open DB: " << db.lastError().text();
}
else {
ui->lineEdit_5->setText("Good");
}
db.close();
}

Выдается ошибка:
Can't open DB: "[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect"

Что я делаю не так?


Ну то что с ходу бросилось в глаза это то что для ODBC не указан драйвер коннектора. Я тоже бился головой о проблему невозможности подключиться просто по DNS имени источника данных. Приходилось все-же указывать имя коннектора. Вот можно почитать про синтаксис строки настроек ODBC http://msdn.microsoft.com/ru-ru/library/sy...tionstring.aspx http://www.connectionstrings.com/mysql

Хотя вот мне коллеги еще посоветовали посмотреть на такое http://www.easysoft.com/developer/libraries/qt/example.cpp
Алексей1153
Цитата(Turbo @ 13.3.2012, 0:41) *
Спасибо, я это изменил, но разницы никакой не заметил, мою проблему это не решило

всё верно, я об этом сразу предупредил.
Turbo
zloiia, спасибо большое за ссылки, только я там ничего не понял.............если не сложно можешь подробно объяснить что где и как делать?

Driver={MySQL ODBC 3.51 Driver};Server=myServerAddress;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;

вот например с этим что делать?
PAFOS
наверное

db=QSqlDatabase::addDatabase("QODBC");
db.setHostName("Driver={MySQL ODBC 3.51 Driver};Server=myServerAddress;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;");
Turbo
Цитата(PAFOS @ 14.3.2012, 11:58) *
наверное

db=QSqlDatabase::addDatabase("QODBC");
db.setHostName("Driver={MySQL ODBC 3.51 Driver};Server=myServerAddress;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;");


Не помогло....((
freedomhhe
Удалите пожалуйста.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.