Russian Qt Forum
Ноябрь 24, 2024, 15:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Ubuntu + MySQL = database not open  (Прочитано 7959 раз)
trenkinan
Гость
« : Август 27, 2010, 18:48 »

Раньше уже начинал писать По БД на QT и MySQL теперь вот перейти параллельно на работу с убунтой в той же связке. Пишу элементарную вещь :
Код
C++ (Qt)
void MainWindow::ShowDatabases()
{
 
       QSqlDatabase db;
       QSqlQuery q;
       db = QSqlDatabase::addDatabase("QMYSQL");
       db.setDatabaseName( "organization" );
       db.setHostName("localhost");
       db.setUserName("root");
       db.setPassword("************");
       if(db.open())
       {
           QMessageBox hello;
           QString s;
           hello.setText("Connected!");
           q.exec("show databases");
           while(q.next())
           {
               s+=q.value(0).toString()+"\n";
           }
       ui->textEdit->setText(s);
 
       }
       else
       {
           QMessageBox hello;
           hello.setText("Not Connected!");
           hello.exec();
 
       }
 
 
}
Самое итересное, что условие db.open() срабатывает... Вот тольк не появляется список баз а в консоли имею database not open . Драйвер ставил из репозитория. Что может быть?
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Август 27, 2010, 20:42 »

Может плагин не собрал..
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
trenkinan
Гость
« Ответ #2 : Август 27, 2010, 20:57 »

у меня не статическая сборка, да , я ставил из репозитория как чайник apt-get install qt-creator, но причем здесь плагин? потом я просто доставил драйвер и по мне так весь джентельменский набор, Плагин можно поставить из репозитария?
Записан
trenkinan
Гость
« Ответ #3 : Август 27, 2010, 21:01 »

Цитирую инофрмацию о пакете, который я тоже поставил :
 libqt4-sql-mysql
This package contains the MySQL plugin for Qt 4. Install it if you intend to use or write Qt programs that are to access a MySQL DB.
Записан
trenkinan
Гость
« Ответ #4 : Август 28, 2010, 11:26 »

Возможно, стоит еще отметить некоторую особенность работы MySQL в Debian-based системах : Вход от простого пользователя(Наблюдается у очень многих) невозможен, но он мне и не нужен, просто после клиента для  Windows бросилось в глаза. Я нормально вхожу в базу из консоли :
Код
Bash
mysql -u root -p ***
Ни у кого никаких соображений, что же может быть, возможно я нечто глупое в коде не заметил( хотя тут элементарность для проверки связи.)
Записан
kowsan
Гость
« Ответ #5 : Август 28, 2010, 13:02 »

Код:
qDebug ()<<QSqlDatabase::drivers ();

что дает?
Записан
trenkinan
Гость
« Ответ #6 : Август 28, 2010, 13:21 »

("QSQLITE", "QMYSQL3", "QMYSQL")
база у меня 5,1
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #7 : Август 28, 2010, 15:03 »

http://doc.trolltech.com/4.6/sql-driver.html#qmysql-for-mysql-4-and-higher
Попробуй лучше сам собери плагин.. Написано в разделе "How to Build the QMYSQL Plugin on Unix and Mac OS X".
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
trenkinan
Гость
« Ответ #8 : Август 28, 2010, 18:38 »

Думаю, это слишком но спасибо... только один вопрос где в убунте по умолчанию лежит Qt?, да я в линуксах новичок...
Записан
trenkinan
Гость
« Ответ #9 : Август 31, 2010, 13:09 »

Не помогло,никаких изменений... Что может быть? На венде аналогичный проект заводится нормально
Записан
crossly
Гость
« Ответ #10 : Август 31, 2010, 14:08 »

дык дело не в драйвере.... скорее всего не находит вашу базу...
Записан
trenkinan
Гость
« Ответ #11 : Август 31, 2010, 16:22 »

Код
SQL
mysql> SHOW DATABASES;
+--------------------+
| DATABASE           |
+--------------------+
| information_schema |
| mysql              |
| organization       |
+--------------------+
3 rows IN SET (0.22 sec)
 
Записан
crossly
Гость
« Ответ #12 : Август 31, 2010, 16:29 »

а что говорит db.lastError().text()??
Записан
trenkinan
Гость
« Ответ #13 : Август 31, 2010, 16:34 »

Он говорит
Код:
""
, что в общем-то странно
Записан
trenkinan
Гость
« Ответ #14 : Август 31, 2010, 19:57 »

Если память мне не изменяет, то при нормальном раскладе должно быть SqlEror(-1,,) , что же такое тут?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 23.