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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: установка драйвера mysql для QT на linux  (Прочитано 18304 раз)
kadr
Гость
« : Октябрь 19, 2009, 21:20 »

привет всем пытаюсь установить драйвер mysql на лине, нашел в нете как это делать:

cd $QTDIR/src/plugins/sqldrivers/mysql

qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
make
но у меня вылетает вот такая ошибка:

/opt/qtsdk-2009.02/qt/.qmake.cache:2: Unknown replace function: quote
/opt/qtsdk-2009.02/qt/.qmake.cache:3: Unknown replace function: quote
Failure to read QMAKESPEC conf file /mkspecs/linux-g++/qmake.conf.
Error processing project file: /opt/qtsdk-2009.02/qt/src/plugins/sqldrivers/mysql/mysql.pro
что это означает? кто знает как поставить драйвер mysql на qt подскажите как это можно сделать!
Записан
Tonal
Гость
« Ответ #1 : Октябрь 20, 2009, 07:19 »

А примеры собираются?
Похоже у тебя криво установлен Qt SDK
Записан
kadr
Гость
« Ответ #2 : Октябрь 20, 2009, 08:04 »

У меня есть дрова для sqllite и для psql, установились вместе с qt creator, а вот mysql-ких дров нет!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Октябрь 20, 2009, 11:29 »

ИМХО, проще просто пересобрать Qt.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kadr
Гость
« Ответ #4 : Октябрь 20, 2009, 13:22 »

ПЕРЕСОБИРАЛ, с параметром qt-sql-mysql, не помогло!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Октябрь 20, 2009, 16:38 »

Давай полностью строку конфигурирования сюда. И желательно опиши свои действия.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
PavelDart
Гость
« Ответ #6 : Октябрь 20, 2009, 22:51 »

Когда мне понадобился драйвер на лине, я нашёл его вроде бы синаптиком и установил или ручками положил рядом с другими драйверами, потом уже в дизайнере проверил работоспособность всё ок, базу и таблицу видел.  Так же прикручивали драйвер на институтских машинах.
Записан
kadr
Гость
« Ответ #7 : Октябрь 21, 2009, 14:21 »

Давай полностью строку конфигурирования сюда. И желательно опиши свои действия.
./configure -qt-sql-mysql -debug-and-release -opensource
У меня QT уже скомпилина, вообще как можно его из сырцов собрать, облазил весь нет, нашел много решений, попробовал, но не получается, в частности вот такой вариант использовал:

cd $QTDIR/src/plugins/sqldrivers/mysql
qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
make
на линуксе выдает вот такую ошибку:
/opt/qtsdk-2009.02/qt/.qmake.cache:2: Unknown replace function: quote
/opt/qtsdk-2009.02/qt/.qmake.cache:3: Unknown replace function: quote
Failure to read QMAKESPEC conf file /mkspecs/linux-g++/qmake.conf.
Error processing project file: /opt/qtsdk-2009.02/qt/src/plugins/sqldrivers/mysql/mysql.pro

на работе на винде выдает такую ошибку:
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:52:19: mysql.h: No such file or directory
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:107: error: expected `)' before '*' token
mingw32-make[1]: *** [tmp/obj/debug_shared/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/2009.03_4.5/qt/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug-all] Error 2

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #8 : Октябрь 21, 2009, 17:20 »

На работе у тебя не может инклуд найти.
Под линем сделай:
1. make confclean
2. ./configure -qt-sql-mysql -debug-and-release -opensource
3. make
4. sudo make install
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kadr
Гость
« Ответ #9 : Октябрь 21, 2009, 23:49 »

На работе у тебя не может инклуд найти.
Под линем сделай:
1. make confclean
2. ./configure -qt-sql-mysql -debug-and-release -opensource
3. make
4. sudo make install
Спасибо, это маленько помогло, теперь драйвер появился, даже открывается база данных, но вот когда я например пытаюсь добавит или прочитать данные из неё, он выдает вот что:
QSqlError(-1, "Driver not loaded", "Driver not loaded")
Что это может значить, база ведь уже же открыта!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #10 : Октябрь 22, 2009, 06:19 »

Закинь сюда код соединения с базой и создания/выполнения QSqlQuery.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kadr
Гость
« Ответ #11 : Октябрь 22, 2009, 08:07 »

Вот:
   QSqlQuery q;
   QSqlDatabase db = QsqlDatabase::addDatabase("QMYSQL", "mydb");
   db.setHostName("192.168.3.10");//Это адрес машины на которой установлена mysql
   db.setDatabaseName("Имя базы");
   db.setUserName("Пользователь");
   db.setPassword("*******");
   db.open();
там дальше типа проверка на открытие баз,
if (db.isOpen())
  {
     qDebug() << tr("Соединение с БД установлена");
  }
else
  {
     qDebgu() << tr("Соединение с БД не установлено");
  }  
...................................................
код программы!
q.exec("INSERT INTO название таблицы (столбец1, столбец2, столбец3, столбецN) " "VALUES (значение1, значение2, значение3, значениеN)");
..................................
db.close();
db.removeDataBase("mydb");

Вывод программы:
Соединение с БД установлено.
Но при выполнение запроса добавления выдает ошибку что драйвер не загружен!
« Последнее редактирование: Октябрь 22, 2009, 08:11 от kadr » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Октябрь 22, 2009, 08:25 »

"mydb" убери
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
BRE
Гость
« Ответ #13 : Октябрь 22, 2009, 08:26 »

Перенеси QSqlQuery q, что бы она определялась после открытия базы.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #14 : Октябрь 22, 2009, 11:31 »

Перенеси QSqlQuery q, что бы она определялась после открытия базы.
Точно, проглядел. Но "mydb" тоже убрать нужно.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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