Ad esempio, ho una query di selezione del database che restituisce n colonne e non sapevo quante righe restituire (consente di chiamare x numero di righe restituite).
Codice di esempio (c ++ e SQLite):
while (sqlite3_step(res) == SQLITE_ROW)
{
printf("\nCOLUMN1 :%s", sqlite3_column_text(res, 0));
printf("\nCOLUMN2 :%s", sqlite3_column_text(res, 1));
printf("\nCOLUMN3 :%s", sqlite3_column_text(res, 2));
}
Ora ho bisogno di creare un metodo per restituire questo risultato come qualsiasi formato specificato. Come implementare questo tipo di attività ? (es: utilizzo di strutture, array multidimensionali, ecc.)
Modificato: Ho fatto questo:
struct SELECTDATA
{
const unsigned char* id;
const unsigned char* deviceId;
const unsigned char* deviceName;
};
vector<SELECTDATA> SQLiteHelperEx::GetData(string query)
{
vector<SELECTDATA> vectorSelect;
int status = sqlite3_prepare_v2(db, query.c_str(), query.size(), &res, &tail);
const char* error_msg{ NULL };
if (status != SQLITE_OK)
{
error_msg = sqlite3_errmsg(db);
_(error_msg);
sqlite3_finalize(res);
sqlite3_close(db);
}
else {
SELECTDATA data_{ NULL, NULL, NULL };
while (sqlite3_step(res) == SQLITE_ROW)
{
data_.id = sqlite3_column_text(res, 0);
data_.deviceId = sqlite3_column_text(res, 1);
data_.deviceName = sqlite3_column_text(res, 2);
vectorSelect.push_back(data_);
}
}
return vectorSelect;
}
Ma non so se il metodo è stato il metodo migliore o meno.