Как вернуть несколько разных типов данных, используя функцию qt c ++? - PullRequest
0 голосов
/ 05 сентября 2018

Я недавно запустил qt, и меня спросили, можем ли мы создать простую функцию, которая возвращает данные с различным типом времени строки int в одном методе, таком как login, в случае, если я передам метод username и password, я верну все пользовательские данные. где я могу вызвать функцию в главной форме и использовать там данные пользователя. я искал и нашел какой-то пример, но все еще трудно для зубок чеснока, я использовал этот, но он возвращает только одно значение, не более, это код

bool database_mysql::test_query(QList<QString>& namesList)
{
    bool result = false;
    namesList.clear();//clear possible old entries

    if(!connect()){
        qDebug() << "Database Not Connected!";
    }else{
        QSqlQuery query;
        query.exec("SELECT * FROM Users");
        while (query.next()){
            QString name = query.value(2).toString();
            namesList.append(name);
         }
        result = true;
    }
    return result;
}

и код для передачи имени пользователя и пароля для проверки пользователя может ли кто-нибудь помочь.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы должны указать свои class / struct для хранения этих данных. Например, вы можете создать файл User.h с объявлением:

#pragma once

struct User {
    int       id;
    QString   name;
    QDateTime joined;
    // anything else in your DB
};

В заголовке модуля вашей БД (например, database_mysql.h):

#pragma once

struct User; // forward declaration

class database_mysql {
public:
    bool database_mysql::test_query(QList<User>& users);
};

Затем в исходном файле БД (например, database_mysql.cpp):

#include <database_mysql.h>
#include <User.h>

bool database_mysql::test_query(QList<User>& users) {
    ...
}

Функция test_query должна затем извлекать строки из БД, создавать экземпляры объектов User и вставлять эти объекты в список users.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...