Вывод содержимого базы данных sqlite3 c++

Нужно, чтобы программа выводила содержимое базы данных в консоль

inline void Print() {
sqlite3* db;
char* errMsg = 0;
int rc = sqlite3_open("Passwords.db", &db);
if (rc != SQLITE_OK) {
    cout << "Database is not open" << endl;
}
else {
    cout << "Database is open" << endl;

    const char* print = "SELECT password FROM PASSWORDS";

    rc = sqlite3_exec(db, print, 0, 0, &errMsg);
    if (rc != SQLITE_OK) {
        cout << "Error! Data is not readed" << endl;
    }
    else {
        cout << "Data is readed successful" << endl;

    }

Ответы (1 шт):

Автор решения: NunOfIt

Код:

#include <iostream>
#include <sqlite3.h>

static int callback(void *data, int argc, char **argv, char **azColName){   
   for(int i = 0; i < argc; ++i)
      std::cout << azColName[i] << " = " <<  (argv[i] ? argv[i] : "NULL") << '\n';
   return 0;
}

inline void print() {
    int rc;
    sqlite3* db;
    char* errMsg = nullptr;
    const char* query = "SELECT password FROM PASSWORDS";

    rc = sqlite3_open("Passwords.db", &db);
    if(rc) {
        std::cout << "Database could not be opened!\n";
        sqlite3_close(db);
        return;
    }
    std::cout << "Database is open\n";

    rc = sqlite3_exec(db, query, callback, nullptr, &errMsg);
    if(rc) {
        std::cerr << "Error! (" << errMsg << ")\n";
        sqlite3_close(db);
        return;
    }
    std::cout << "Data has been successfully read!\n";

    sqlite3_close(db);
}

int main() {
    (void) print();
    return 0;
}

Вывод:

Database is open
password = abc
password = jdhgjd434
Data has been successfully read!
→ Ссылка