Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Prebrojavanje svakog zapisa u bazi... Delphi + MySQL;

  • 2 odgovora
  • 4.037 pregleda

Najnovija ↓

Prebrojavanje svakog zapisa u bazi... Delphi + MySQL; 10.11.2003. u 23:47 · pre 279 meseci #1

Pozdrav svima,

Imam jedan problem pa ako neko ima ideju ili je vec radio nesto slicno moze da mi uputi sugestiju. Naime, u sklopu jednog programa treba se obaviti seldeca operacija : Postoji tabela ( MySQL ) koja moze da sadrzi od 300 pa preko 20000 zapisa. Polja u tabeli su artist,title,trajanje... Svako polje moze se ponoviti vise puta i obicno se ponavljaju. Ja treba na osnovu te tabele da napravim novu, koja ce sadrzati sve stavke ali bez ponavljanja + polje u kome pise koliko se data stavka puta pojavljuje u tabeli. Uradio sam to tako sto pocnem od prvog polja u tabeli, pa onda upit- Select count(title)... za to polje pa se to upisuje u novu tabelu i tako za svako polje. Sad to odradi posao i dobijem ono sta sam hteo, samo je stos u tome sto to radi previse sporo, a ponekad i program zakuca. Da li postoji nacin da se ovo odradi efikasnije?

Unapred zahvalan na svim sugestijama, erekoz
Re: Prebrojavanje svakog zapisa u bazi... Delphi + MySQL; 11.11.2003. u 00:53 · pre 279 meseci #2
Program ti verovatno puca zbog maksimalne data velicine sql upita koji je kod mysql-a po defaultu 1MB. Menja se na odredjenu velicinu sa "set-variable = max_allowed_packet=16M" u my.ini konfiguracionom fajlu mysql servera. Obrati paznju da je potrebno povecati max_allowed_packet i kod mysql server i mysql klijent strane (i mislim da za v3.23.xx bese 16MB maximum).

Da bi izbegao vece upite (tj one koji kao rezultat donose veci dataset) mozes da uradis sledece:
1. uradis SELECT DISTINCT nad pocetnom tabelom i od rezultata formiras novu tabelu
2. prodjes kroz tu tabelu i za svaki record uradis jedno "select count(*) from stara_tabela where artist_name = :Artist" i tu int vrednost upises u polje sa brojem pojavljivanja.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme