История изменений
Исправление 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