LINUX.ORG.RU

История изменений

Исправление Toxo2, (текущая версия) :

Я ж не ТС.

Я тут мимо проходил, глазом зацепился. Дай, думаю, в Qt по случаю потыкаю пока бессонница.

Моя б воля - я б всех отправлял разговаривать с БД только через процедуры, которые им БДшники напишут.

-----------------

Минимально воспроизводимый пример (если у вас ПГ на локалхосте настроен как у меня):

#include <QtCore>
#include <QtSql>

int main(int argc, char *argv[]) {
    //Qt6 без этого не работает
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("/var/run/postgresql");
    db.setUserName("postgres");
    bool ok = db.open();
    if (ok)
    {
	QSqlQuery query("SELECT now()::timetz AS tmtz;");
	while (query.next())
	{
	    qWarning() << query.value(0).toString();
	}
	
	QSqlQueryModel model;
	model.setQuery ("SELECT now()::timetz AS tmtz;");
	for (int i = 0; i < model.rowCount(); i++) 
	{
	    QTime tm = model.record(i).value("tmtz").toTime();
	    qWarning() << tm << tm.minute() << tm.second();
	}
    }
    else
    {
	qDebug() << "ERRORDB";
    };

    return 0;
}

$ g++ $(pkg-config --cflags --libs Qt5Sql) -fPIC -lpq -o db5 db2.cpp
$ ./db5
"07:55:30.522"
QTime("07:55:30.523") 55 30
$ g++ $(pkg-config --cflags --libs Qt6Sql) -fPIC -lpq -o db6 db2.cpp
$ ./db6
""
QTime(Invalid) -1 -1

Исправление Toxo2, :

Я ж не ТС.

Я тут мимо проходил, глазом зацепился. Дай, думаю, в Qt по случаю потыкаю пока бессонница.

Моя б воля - я б всех отправлял разговаривать с БД только через процедуры, которые им БДшники напишут.

-----------------

Минимально воспроизводимый пример:

#include <QtCore>
#include <QtSql>

int main(int argc, char *argv[]) {
    //Qt6 без этого не работает
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("/var/run/postgresql");
    db.setUserName("postgres");
    bool ok = db.open();
    if (ok)
    {
	QSqlQuery query("SELECT now()::timetz AS tmtz;");
	while (query.next())
	{
	    qWarning() << query.value(0).toString();
	}
	
	QSqlQueryModel model;
	model.setQuery ("SELECT now()::timetz AS tmtz;");
	for (int i = 0; i < model.rowCount(); i++) 
	{
	    QTime tm = model.record(i).value("tmtz").toTime();
	    qWarning() << tm << tm.minute() << tm.second();
	}
    }
    else
    {
	qDebug() << "ERRORDB";
    };

    return 0;
}

$ g++ $(pkg-config --cflags --libs Qt5Sql) -fPIC -lpq -o db5 db2.cpp
$ ./db5
"07:55:30.522"
QTime("07:55:30.523") 55 30
$ g++ $(pkg-config --cflags --libs Qt6Sql) -fPIC -lpq -o db6 db2.cpp
$ ./db6
""
QTime(Invalid) -1 -1

Исходная версия Toxo2, :

Я ж не ТС.

Я тут мимо проходил, глазом зацепился. Моя б воля - я б всех отправлял разговаривать с БД только через процедуры, которые им БДшники напишут.

-----------------

Минимально воспроизводимый пример:

#include <QtCore>
#include <QtSql>

int main(int argc, char *argv[]) {
    //Qt6 без этого не работает
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("/var/run/postgresql");
    db.setUserName("postgres");
    bool ok = db.open();
    if (ok)
    {
	QSqlQuery query("SELECT now()::timetz AS tmtz;");
	while (query.next())
	{
	    qWarning() << query.value(0).toString();
	}
	
	QSqlQueryModel model;
	model.setQuery ("SELECT now()::timetz AS tmtz;");
	for (int i = 0; i < model.rowCount(); i++) 
	{
	    QTime tm = model.record(i).value("tmtz").toTime();
	    qWarning() << tm << tm.minute() << tm.second();
	}
    }
    else
    {
	qDebug() << "ERRORDB";
    };

    return 0;
}

$ g++ $(pkg-config --cflags --libs Qt5Sql) -fPIC -lpq -o db5 db2.cpp
$ ./db5
"07:55:30.522"
QTime("07:55:30.523") 55 30
$ g++ $(pkg-config --cflags --libs Qt6Sql) -fPIC -lpq -o db6 db2.cpp
$ ./db6
""
QTime(Invalid) -1 -1