Baza danych Sqlite od początku. Select last - nie działa

0

Witam,

mam do was prośbę dopiero zaczynam z sqlite i jestem w tym ciemny.

Mam już wszystkie chyba rzeczy potrzebne do zabawy z ta bazą, ściągnąłem pliki ze strony producenta, wygenerowałem pliki .lib i dodałem je do projektu.

Problem zaczyna się jednak tu gdzie mam coś napisać w kodzie programu związanego z bazą danych.

Nie wiem co pisać.

W google nie mogę niczego od podstaw znaleźć.

Chcę tylko aby, mój program dodawał do bazy danych pewne informacje na stałe i później je odczytywał.

Proszę o pomoc, bo muszę robić projekt a stoję w miejscu.

korzystam z VS2010 c++.

0

Jak to nie wiesz co napisać? Używasz normalnych SQLowych kwerend. A bazę razem ze stałymi tabelami (chodzi o strukturę, nie o dane) najlepiej wyklikać w sqlitemanager.

0

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;
}
0

jednak w ogóle nie działa "SELECT LAST(nazwa kolumny) from nazwa tabeli",

czym można to zastąpić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1