Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

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

[es] :: Pascal / Delphi / Kylix :: Prebrojavanje svakog zapisa u bazi... Delphi + MySQL;

[ Pregleda: 3279 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

erekoz
John Doe
Beograd

Član broj: 5960
Poruke: 148
*.tvmetropolis.com



Profil

icon Prebrojavanje svakog zapisa u bazi... Delphi + MySQL;10.11.2003. u 22:47 - pre 248 meseci

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
 
Odgovor na temu

silverglider

Član broj: 651
Poruke: 218
*.dip.t-dialin.net

Sajt: www.benchmark.co.yu


Profil

icon Re: Prebrojavanje svakog zapisa u bazi... Delphi + MySQL;10.11.2003. u 23:53 - pre 248 meseci
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.
 
Odgovor na temu

Vladimir_Ilic

Član broj: 16214
Poruke: 3
*.rcub.bg.ac.yu



Profil

icon Re: Prebrojavanje svakog zapisa u bazi... Delphi + MySQL;12.11.2003. u 13:41 - pre 248 meseci
Probaj nesto tipa:
Select Count(*), field1 from table group by field1

ovo ce da izbaci broj pojavljivanja razlicitih vrednosti za field1 :
100 value1
202 value2 ...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Prebrojavanje svakog zapisa u bazi... Delphi + MySQL;

[ Pregleda: 3279 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.