Jak przypisać wartość z tabeli do zmiennej? SQLITE

0

Witam,

nie mogę do tego dojść, jak sprawdzić czy baza danych jest pusta?

c++ Sqlite

0

Policz rekordy.

0

I nie zakładaj dziesięciu kolejnych tematów, żeby rozwiazać jeden problem! Google jest pełne poradników dla początkujących dotyczących podstaw baz danych...

0

gdybym znalazł coś w google to bym nie zakładał tematu.

0

A co znaczy że baza jest pusta? Nie ma żadnej tabeli, czy może, że w żadnej tabeli nie ma żadnego rekordu?

0

Baza danych jest zbiorem relacji. Zatem pusta baza danych to zbiór pusty relacji, czyli baza, w której nie ma tabel.

0

w takim razie źle się wyraziłem, chodzi mi o pustą tabele.

0

Słyszałeś o takim wynalazku, który nazywa się google?
SELECT count(*) FROM nazwaTabeli, zwraca ilość rekordów.

0

instrukcja INSERT INTO mi działa, natomiast SELECT * FROM już nie działa

co robię źle?

mam taka funkcję:


void baza_danych::spr()
{
	sqlite3 *db;
	string rezultat;
	stringstream  *ss= new stringstream[10000]; 
	char *zErrMsg = 0;
	int rc;
	
	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");

	
	
	
			ss[indeks_bazy]<<"insert into scores (Sezon, Data, Druzyna1, Wynik1, Druzyna2, Wynik2, Rezultat) values (1,2,3,4,5,6,7)"; 
			indeks_bazy++;
	
	
		
			ss[indeks_bazy]<<"SELECT (*) FROM scores"; 


			
	
	}


	


	for(int i = 0; i < indeks_bazy; i++)
		{
			rc = sqlite3_exec(db, (ss[i].str().c_str()), callback, 0, &zErrMsg);
			if( rc!=SQLITE_OK )
			{
				fprintf(stderr, "SQL error: %s\n", zErrMsg);
				sqlite3_free(zErrMsg);
				break; 
			}
		}
	 cout << "koniec";

} 

int baza_danych::callback(void *NotUsed, int argc, char **argv, char **azColName)
{
  int i;
  for(i=0; i<argc; i++)
  {
    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  }
  printf("\n");
  return 0;
}
0

SELECT * FROM scores
niektóre SQL'e nie akceptują zbędnych nawiasów okrągłych.

0

wersja SELECT * FROM scores tez nic nie pokazuje

0

A co miałoby pokazać? o_O Odbierasz gdzieś wyniki tego zapytania?
Czemu dzieciom na komunię zamiast rowerów kupują teraz komputery?...

0

przecież ten fragment się tym zajmuje:

jestem w błędzie?

        for(int i = 0; i < indeks_bazy; i++)
                {
                        rc = sqlite3_exec(db, (ss[i].str().c_str()), callback, 0, &zErrMsg);
                        if( rc!=SQLITE_OK )
                        {
                                fprintf(stderr, "SQL error: %s\n", zErrMsg);
                                sqlite3_free(zErrMsg);
                                break; 
                        }
                }
         cout << "koniec";
 
} 
 
int baza_danych::callback(void *NotUsed, int argc, char **argv, char **azColName)
{
  int i;
  for(i=0; i<argc; i++)
  {
    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  }
  printf("\n");
  return 0;
}
  
0

czy ten callback jest zadeklarowany jako static?

0

tak

ok, błąd był masakryczny w pętli for w której następuje przejście po kolejnych zapytaniach zamiast i<=indeks_bazy było i<indeks_bazy i się nie wykonywało ostatnie zapytanie,

dziękuję i przepraszam za problem.

0

Umiem się już poruszać po bazie danych, jednak nie wiem jak przypisać wartość jakiejś danej z kolumny do zmiennej.

np. chcę przypisać do zmiennej 5 element z kolumny o nazwie Wynik.

?

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