Вывод содержимого базы данных 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!