Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt4]Проблема с QSqlDatabase, Компилятор не видит класс QSqlDatabase 
V
    Опции темы
Acer
Дата 22.7.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Привет всем. Пишу приложение, которое коннектится к БД с помощью Qt(4.4.0)
Вот начало моего класса, который называется RData:
Код

#ifndef _RDATA_H
#define _RDATA_H

#include <QSqlDatabase>

#include "RUtil.h"

class RData: private QSqlDatabase {
    ................................
...................

Компиляция вылетает с вот такой ошибкой:
Цитата

error: expected class-name before '{' token

Подскажите, в чем я ошибся и почему компилятор не видит класс QSqlDatabase?
ps. компилятор gcc
PM MAIL   Вверх
JackYF
Дата 22.7.2008, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(Acer @  21.7.2008,  23:36 Найти цитируемый пост)
ps. компилятор gcc 

А точно ли в этом месте ругается? Вроде бы всё правильно...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Elfebet
Дата 22.7.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 5
Всего: 14



лично меня смутила вот эта строка

Цитата

class RData: private QSqlDatabase {


обычно если наследуют пишут public, а не private

оно?


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
SABROG
Дата 22.7.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Так
Код

#include <QtSql/QSqlDatabase>


либо так

Код

#include <QtSql>


Хоть в ассистанте и написано

Код

#include <QSqlDatabase>


Но так не видит компилятор. Видимо косяк в генерилке документации.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Acer
Дата 22.7.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Сегодня утром нашло просветление в голову. Вроде разобрался с ошибкой.
Сделал следующее - добавил в файл *.pro вот эту строку:
Цитата

QT += sql

Вроде заработало.
Всем спасибо
PM MAIL   Вверх
SABROG
Дата 22.7.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Все правильно, qmake добавляет инклюд в мейк-файл в зависимости от прописанных модулей в .pro файле:

Код

-I"..\qt-win-opensource-src-4.4.0-beta1\include\QtSql"


Потому и не находил. Значит с документацией все в порядке.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 22.7.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(SABROG @  22.7.2008,  12:22 Найти цитируемый пост)
Все правильно, qmake добавляет инклюд в мейк-файл в зависимости от прописанных модулей в .pro файле:

+ линкует нужную кутешную либу (для этого модуля) и иногда добавляет некоторые дефайны.


--------------------
PM MAIL ICQ Skype   Вверх
Acer
Дата 22.7.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Прога то скомпилилась... Но появилась еще одна проблема.
Доступные драйвера - QSQLITE, QODBC, QODBC3.
А тех, что мне надо ( QMYSQL и QOCI ) нету :(
Подскажите, как работать с Oracle и MySQL ?

Это сообщение отредактировал(а) Acer - 22.7.2008, 13:05
PM MAIL   Вверх
Любитель
Дата 22.7.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Собрать плагинами драйвера. При этом потребуются заголовочные и либ файлы от MySQL. С ораклом - по-моему, только библиотека (она ставится отдельным пунктом) - может туплю smile


--------------------
PM MAIL ICQ Skype   Вверх
SABROG
Дата 22.7.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(Любитель @ 22.7.2008,  13:16)
Собрать плагинами драйвера. При этом потребуются заголовочные и либ файлы от MySQL. С ораклом - по-моему, только библиотека (она ставится отдельным пунктом) - может туплю smile

Кстати так и не нашел нигде списка SQL драйверов которые не входят в стандартную поставку Open Source Edition дистрибутива из-за конфликта лицензий. Об этом просто написано в ассистенте, но перечислены все как поддерживаемые.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 22.7.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Да, насчёт оракла, действительно, я протупил smile В OSE не входят драйвера для: DB2, Oracle, Sybase.


--------------------
PM MAIL ICQ Skype   Вверх
Acer
Дата 23.7.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Подскажите, как работать с плагинами?
PM MAIL   Вверх
Любитель
Дата 23.7.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Плагины для СУБД загружаются самим фреймворком Qt. О том как их собрать и куда поместить - написано в ассистенте.


--------------------
PM MAIL ICQ Skype   Вверх
Acer
Дата 23.7.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Ассистент большой. Я не все могу понять. Может из-за несовершенства моего английского. Можно пример или никто не знает, как это делается?
PM MAIL   Вверх
Acer
Дата 23.7.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Я проделал следующее:
Цитата

cd %QTDIR%\src\plugins\sqldrivers\odbc
qmake -o Makefile odbc.pro
make

Затем скопировал в проект файлы
Цитата

%QTDIR%\src\sql\drivers\odbc\qsql_odbc.h
%QTDIR%\src\sql\drivers\odbc\qsql_odbc.cpp

Компилирую и вот что получается:
Цитата

Running "C:\mingw\bin\make.exe  -f Makefile CONF=Debug" in D:\ADMIN\reich\xCPR\Prochee

/c/mingw/bin/make -f Makefile.Release
make[1]: Entering directory `/d/ADMIN/reich/xCPR/Prochee'
C:/Qt/4.4.0/bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/Qt/4.4.0/include/QtCore' -I'c:/Qt/4.4.0/include/QtCore' -I'c:/Qt/4.4.0/include/QtGui' -I'c:/Qt/4.4.0/include/QtGui' -I'c:/Qt/4.4.0/include/QtSql' -I'c:/Qt/4.4.0/include/QtSql' -I'c:/Qt/4.4.0/include' -I'.' -I'c:/Qt/4.4.0/include/ActiveQt' -I'release' -I'.' -I'c:/Qt/4.4.0/mkspecs/default' -D__GNUC__ -DWIN32 src/qsql_odbc.h -o release/moc_qsql_odbc.cpp
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/Qt/4.4.0/include/QtCore' -I'c:/Qt/4.4.0/include/QtCore' -I'c:/Qt/4.4.0/include/QtGui' -I'c:/Qt/4.4.0/include/QtGui' -I'c:/Qt/4.4.0/include/QtSql' -I'c:/Qt/4.4.0/include/QtSql' -I'c:/Qt/4.4.0/include' -I'.' -I'c:/Qt/4.4.0/include/ActiveQt' -I'release' -I'.' -I'c:/Qt/4.4.0/mkspecs/default' -o release/moc_qsql_odbc.o release/moc_qsql_odbc.cpp
release/moc_qsql_odbc.cpp:37: error: definition of static data member 'QODBCDriver::staticMetaObject' of dllimport'd class

release/moc_qsql_odbc.cpp:37: warning: 'QODBCDriver::staticMetaObject' defined locally after being referenced with dllimport linkage

make[1]: *** [release/moc_qsql_odbc.o] Error 1
make[1]: Leaving directory `/d/ADMIN/reich/xCPR/Prochee'
make: *** [release] Error 2

Build failed. Exit value 2
.

Народ, пожалуйста, хэлп ми... 
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.