Название: установка драйвера mysql для QT на linux Отправлено: 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 подскажите как это можно сделать! Название: Re: установка драйвера mysql для QT на linux Отправлено: Tonal от Октябрь 20, 2009, 07:19 А примеры собираются?
Похоже у тебя криво установлен Qt SDK Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 20, 2009, 08:04 У меня есть дрова для sqllite и для psql, установились вместе с qt creator, а вот mysql-ких дров нет!
Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 20, 2009, 11:29 ИМХО, проще просто пересобрать Qt.
Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 20, 2009, 13:22 ПЕРЕСОБИРАЛ, с параметром qt-sql-mysql, не помогло!
Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 20, 2009, 16:38 Давай полностью строку конфигурирования сюда. И желательно опиши свои действия.
Название: Re: установка драйвера mysql для QT на linux Отправлено: PavelDart от Октябрь 20, 2009, 22:51 Когда мне понадобился драйвер на лине, я нашёл его вроде бы синаптиком и установил или ручками положил рядом с другими драйверами, потом уже в дизайнере проверил работоспособность всё ок, базу и таблицу видел. Так же прикручивали драйвер на институтских машинах.
Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 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 Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 21, 2009, 17:20 На работе у тебя не может инклуд найти.
Под линем сделай: 1. make confclean 2. ./configure -qt-sql-mysql -debug-and-release -opensource 3. make 4. sudo make install Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 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") Что это может значить, база ведь уже же открыта! Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 22, 2009, 06:19 Закинь сюда код соединения с базой и создания/выполнения QSqlQuery.
Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 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"); Вывод программы: Соединение с БД установлено. Но при выполнение запроса добавления выдает ошибку что драйвер не загружен! Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 22, 2009, 08:25 "mydb" убери
Название: Re: установка драйвера mysql для QT на linux Отправлено: BRE от Октябрь 22, 2009, 08:26 Перенеси QSqlQuery q, что бы она определялась после открытия базы.
Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 22, 2009, 11:31 Перенеси QSqlQuery q, что бы она определялась после открытия базы. Точно, проглядел. Но "mydb" тоже убрать нужно.Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 22, 2009, 14:00 Перенеси QSqlQuery q, что бы она определялась после открытия базы. Точно, проглядел. Но "mydb" тоже убрать нужно.Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 22, 2009, 19:08 Решил проблему с загрузкой драйвера, но почему то у меня никак не хотят данные добавляться в БД.
q.exec("INSERT INTO main (code, name, proizvod, ostatok, base_chena, predoplat_group) VALUES (number, name, proizvod, kol, chena, group)"); Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 22, 2009, 19:28 Вроде бы нашел в чем проблема! Когда я достаю цену из строки и записываю ее в переменную, он нормального размера, но после того как ее переношу в переменную типа double, то она становиться огроммной, куча лишних нулей, строка.toDouble():
строка = 490,97 переменная типа double = 490.97000000000003 Как сделать так что бы там было 2 знака после запятой! Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 22, 2009, 19:33 А зачем переносишь? Кинь сюда код извлечения и загрузки.
Походу, с БД раньше не работал? Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 22, 2009, 19:40 while (!file_r.atEnd())
{ str = file_r.readLine().trimmed(); rab = str.mid(0,8).trimmed(); number = rab.toInt(); name = str.mid(10,40).trimmed(); proizvod = str.mid(50,44).trimmed(); rab.clear(); rab = str.mid(96,7).trimmed(); kol = rab.toInt(); rab.clear(); rab = str.mid(106,7).trimmed(); j = 0; rab1.clear(); while (j != rab.length()) { if ((rab.at(j) != 'p') && (rab.at(j) != '.')) { rab1.append(rab.at(j)); } j++; } rab1.trimmed(); chena = rab1.toDouble(); rab2.clear(); group = str.mid(126,35).trimmed(); rab.clear(); q.exec("INSERT INTO main (code, name, proizvod, ostatok, base_chena, predoplat_group)" "VALUES (number, name, proizvod, kol, chena, group)"); } file_r.close(); close(); db.close(); } Название: Re: установка драйвера mysql для QT на linux Отправлено: Пантер от Октябрь 22, 2009, 19:44 Мдя.... Это на долго... :)
Код
Название: Re: установка драйвера mysql для QT на linux Отправлено: kadr от Октябрь 22, 2009, 19:55 Мдя.... Это на долго... :) Заработало, спасибки! :DКод
|