Название: mysql в консоли
Отправлено: mokynis от Август 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, все нормально соединяется и работает Где мой косяк?
Название: Re: mysql в консоли
Отправлено: Пантер от Август 11, 2015, 16:06
Надо сначала запустить очередь сообщений (a.exec()), видимо.
Название: Re: mysql в консоли
Отправлено: mokynis от Август 11, 2015, 16:10
неее, тогда вообще дичь получается. Типа, запускается невесть что и висит, ждет моей реакции
Название: Re: mysql в консоли
Отправлено: Пантер от Август 11, 2015, 16:12
Дык, надо функционал вынести в класс от QObject отнаследованный и запускать выполнение через invokeMethod.
Название: Re: mysql в консоли
Отправлено: Пантер от Август 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(); }
|