Russian Qt Forum

Qt => Базы данных => Тема начата: bob от Октябрь 26, 2005, 17:54



Название: Database и Qt 4.0.1
Отправлено: bob от Октябрь 26, 2005, 17:54
Объявляю #include <QSqlDatabase>, компилирую и получаю сообщение "No such file or directory". Ессесьно проверил наличие файла. Разумеется есть. В чем может быть проблема?


Название: Database и Qt 4.0.1
Отправлено: nEoN от Октябрь 26, 2005, 20:15
В файл проекта надо добавить строчку : QT += sql


Название: Re: Database и Qt 4.0.1
Отправлено: KADABRA от Октябрь 26, 2005, 20:21
Цитата: "bob"
Объявляю #include <QSqlDatabase>, компилирую и получаю сообщение "No such file or directory". Ессесьно проверил наличие файла. Разумеется есть. В чем может быть проблема?

Попробуй #include <QtSql/QSqlDatabase>


Название: Database и Qt 4.0.1
Отправлено: AlexKiriukha от Октябрь 26, 2005, 22:14
Все таки правильнее будет QT += sql. Это добавит пути поиска для INCLUDE и прилинкует libQtSql.


Название: Database и Qt 4.0.1
Отправлено: bob от Октябрь 26, 2005, 22:45
QT += sql помогло, но следующая проблема

Код:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setUserName("root");
db.setPassword("578010");
bool ok = db.open();


Не могу открыть БД. Постоянно ok == false.


Название: Database и Qt 4.0.1
Отправлено: nEoN от Октябрь 27, 2005, 08:19
Посмотри какая ошибка возвращается при попытке открытия БД :
Код:
db.lastError().text()


Название: Database и Qt 4.0.1
Отправлено: bob от Октябрь 27, 2005, 09:26
db.lastError() пишет "Driver Not Loaded". При попытке выполнить сборку плагина (согласно Assistance)
Код:

cd %QTDIR%\src\plugins\sqldrivers\mysql
    qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
    mingw32-make

Сообщает, что не найден файл lmysql.lib.
Если выполняю
Код:
configure.exe -release -qt-sql-mysql
то в процессе перекомпиляции сообщает: qsql_mysql.h:34:19: mysql.h no such file or directory.
qsql_mysql.h:82 error:Expected ')' before '*' token.

Тоже самое получаю если согласно примера указываю
#include "C:/Qt/4.0.1/src/sql/drivers/mysql/qsql_mysql.cpp"


Название: Database и Qt 4.0.1
Отправлено: AlexKiriukha от Октябрь 27, 2005, 09:36
А комрилятор какой? Его версия? Версия компилятора? ОС?


Название: Database и Qt 4.0.1
Отправлено: Admin от Октябрь 27, 2005, 09:45
явно пишет что не находит headers от mysql

ты дожен в INCLUDES прописать путь к заголовочным файлам от mysql
что бы qt c ними слинковался


Название: Database и Qt 4.0.1
Отправлено: bob от Октябрь 27, 2005, 09:59
Компиляю MinGW-3.4.2.

Как првильно системные переменный должны называться?
INCLUDE
LIB

INCLUDES
LIBS

INCLUDEPATH
LIBPATH


Название: Database и Qt 4.0.1
Отправлено: nEoN от Октябрь 27, 2005, 10:13
Попробуй в файл своего проекта (.pro) добавить :
Код:
INCLUDEPATH += C:\MYSQL\INCLUDE

После этого компилятор должен найти mysql.h.


Название: Database и Qt 4.0.1
Отправлено: bob от Октябрь 27, 2005, 10:28
Объявил системный переменные INCLUDES и LIBS. Прописал:
INCLUDES = C:\MySQL\include
LIBS = C:\MySQL\lib\opt

Теперь при сборке после
Код:
cd %QTDIR%\src\plugins\sqldrivers\mysql 
    qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
    mingw32-make

сообщает, что нет файла qsqlmysql.dll. Его действиетльно нет, но если он так нужен, то где его можно взять?


Название: Database и Qt 4.0.1
Отправлено: bob от Октябрь 27, 2005, 11:36
Написал лажу не находит -lmysql.lib и поэтому не создает qsqlmysql.dll.


Название: Database и Qt 4.0.1
Отправлено: Admin от Октябрь 27, 2005, 16:16
таки это же либа от mysql


подсунь ее


Название: Database и Qt 4.0.1
Отправлено: bob от Октябрь 27, 2005, 16:25
Подсуну. Скажи куда именно.