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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: mysql в консоли  (Прочитано 13245 раз)
mokynis
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« : Август 11, 2015, 15:52 »

делаю консольный проект
Код:
QT       += sql
QT       -= gui
TARGET = proekt
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
вот кусок кода
Код:
#include <QtCore/QCoreApplication>
#include <QtSql>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSqlQuery qry;
    bool is_good=true;
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL3");
    db.setHostName("<ip-адрес>");
    db.setDatabaseName("<база>");
    db.setUserName("<юзер>");
    db.setPassword("<pass>");

    if(!db.open())
        is_good=false; //ТУТ ОШИБКУ НЕ ПОКАЗЫВАЕТ
    if(is_good)
        is_good=qry.exec("DELETE FROM invoice_in");//А ВОТ ТУТ =false
если делаю то же самое, только с GUI, все нормально соединяется и работает
Где мой косяк?
Записан

QT4, Qt5, Qt6 Debian, ArchLinux
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #1 : Август 11, 2015, 16:06 »

Надо сначала запустить очередь сообщений (a.exec()), видимо.
Записан

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

Сообщений: 176


Просмотр профиля
« Ответ #2 : Август 11, 2015, 16:10 »

неее, тогда вообще дичь получается. Типа, запускается невесть что и висит, ждет моей реакции
Записан

QT4, Qt5, Qt6 Debian, ArchLinux
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #3 : Август 11, 2015, 16:12 »

Дык, надо функционал вынести в класс от QObject отнаследованный и запускать выполнение через invokeMethod.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #4 : Август 11, 2015, 16:15 »

Код
C++ (Qt)
class SomeName : public QObject
{
Q_OBJECT
............
public Q_SLOTS:
   void run() {
       //Connect to database and work
   }
............
};
.....................
int main(......)
{
   QCoreApplication app(.....);
   SomeName someName;
   QMethaObject::invokeMethod(&someName, "run");
   return app.exec();
}
 
Записан

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


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