crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Подключение к базе данных на виртуальной машине (QODBC)
Turbo
  опции профиля:
сообщение 12.3.2012, 20:17
Сообщение #1


Новичок


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

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




Репутация:   0  


Всем доброго времени суток!
Пытаюсь подключиться к базе данных на виртуальной машине таким образом


#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
  опции профиля:
сообщение 12.3.2012, 20:41
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


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

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

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


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Turbo
  опции профиля:
сообщение 12.3.2012, 21:41
Сообщение #3


Новичок


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

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




Репутация:   0  


Спасибо, я это изменил, но разницы никакой не заметил, мою проблему это не решило
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zloiia
  опции профиля:
сообщение 12.3.2012, 23:31
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 5.5.2011
Пользователь №: 2655

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




Репутация:   0  


Цитата(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
  опции профиля:
сообщение 13.3.2012, 7:35
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Цитата(Turbo @ 13.3.2012, 0:41) *
Спасибо, я это изменил, но разницы никакой не заметил, мою проблему это не решило

всё верно, я об этом сразу предупредил.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Turbo
  опции профиля:
сообщение 13.3.2012, 19:38
Сообщение #6


Новичок


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

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




Репутация:   0  


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

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

вот например с этим что делать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 14.3.2012, 11:58
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

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




Репутация:   8  


наверное

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


Сообщение отредактировал PAFOS - 14.3.2012, 11:59
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Turbo
  опции профиля:
сообщение 14.3.2012, 19:41
Сообщение #8


Новичок


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

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




Репутация:   0  


Цитата(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_*
сообщение 16.3.2012, 20:13
Сообщение #9





Гости








    


Удалите пожалуйста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 30.11.2024, 13:02