Poniżej mam program który odczytuje ile jest kolumn w mojej bazie danych i zapisuje do zmiennej.
Jednak ja chciałbym aby odczytywał on ile jest wierszy i zapisywał to do zmiennej. Potrzebne jest mi to aby ustalać na początku czy baza jest pusta czy nie.
chciałbym żeby tak samo do zmiennej była zapisywana wartość ostatniego wiersza z jakiejś kolumny.
normalnie jak nie chcę tego zapisać tylko wyświetlić to robię tak:
char *sql[]={"SELECT LAST(Druzyna1) FROM Scores ;"
ale teraz jak tak robię to wyskakuje mi error: no such column: LAST.
jak to naprawić?
proszę o pomoc, nie mogę nic znaleźć na ten temat.
kod:
int main(int argc, char* argv[])
{
/*
char *plik1="scores1.txt", *plik2="scores2.txt";
class kod_zrodlowy moc(plik1,plik2);
moc.pobierz_kod();
int sezon = moc.sezon_poczatkowy;
//int sezon=1;
class baza_danych szu(plik1,plik2,sezon);
szu.spr();
*/
sqlite3 *db;
unsigned const char* _name;
int _name1;
stringstream odp;
char *zErrMsg = 0;
int rc, col;
const unsigned char *filename;
int indeks_bazy=0;
rc = sqlite3_open ("scores.sqlite", &db);
if( rc ){
fprintf(stderr, "Nie można otworzyć bazy: %s\n", sqlite3_errmsg(db));
}
else
{
fprintf(stderr, "Baza danych otwarta!:)\n");
sqlite3_stmt *select_stmt;
//pSQL[indeks_bazy]="insert into scores (Sezon, Data, Druzyna1, Wynik1, Druzyna2, Wynik2, Rezultat) values (1,2,3,4,5,6,7)";
//indeks_bazy++;
//odp<<"SELECT Sezon, Data, Druzyna1, Wynik1, Druzyna2, Wynik2, Rezultat FROM Scores";
char *sql[]={"SELECT Sezon, Data, Druzyna1, Wynik1, Druzyna2, Wynik2, Rezultat FROM Scores ;"
//char *sql[]={"SELECT count(*) FROM Scores ;"
};
for (int i=0; i<sizeof(sql)/sizeof(sql[0]); i++)
{
if (sqlite3_prepare(db, sql[i], -1, &select_stmt, NULL))
{
printf("Error: %s\n", sqlite3_errmsg(db));
sqlite3_finalize(select_stmt);
sqlite3_close(db);
system("pause");
exit(1);
}
col = sqlite3_column_count(select_stmt);
if((rc = sqlite3_step(select_stmt)) == SQLITE_ROW)
{
col = sqlite3_data_count(select_stmt);
//_name1=sqlite3_column_int(select_stmt, 3);
cout<<col<<endl; //1
}
}
}
cout << "koniec"<< endl;
system("pause");
return 0;
}