Aplikacija rađena u Delphi 7, baza Mysql, Zeos komponente. Prilikom prikaza podataka u grid pojavljuju se zapisi više puta. U samoj tabeli u bazi je sve u redu, sa SELECT odradi i prikaže tačan broj zapisa, međutim u gridu komponenta zquery sa istom komandom SELECT prikaže zapise po dva ili tri puta. Ima li neko ideju šta može biti u pitanju. Hvala
Običan select, na primer SELECT * FROM REZERVISANOKOZA WHERE BRTREBOVANJA = nalog AND PODBROJK = pbroj AND GODK = god i na gridu izzađe prv slog dva puta a ukoliko ima više slogova ponove se i drugi jednom ili više puta. Na direktan upit u mysql konzoli rezultat bude dobar.
A ako staviš dbnavigator i dbedit kontrole, ili ako prođeš nekom petljom kroz recordset daje li opet duple slogove?
Koji grid, obični TDdBGrid ili neki "vanjski"?
Ubaci rec DISTINCT u SELECT.
Ako grid tada pokaze kako treba, onda stvarno imas duple slogove u bazi. Ali je onda nejasno zasto upit u MySQL konzoli daje dobre podatke; mozda konzola po default-u radi sa DISTINCT opcijom..?
Probao sa navigatorom i dbedit ista stvar, koristim običan tdbgrid, i stavljao sam DISTINCT u upit REZULTAT JE ISTI. Proba sam i sa brisanjem tabela u bazi i kreiranjem novih bez rezultata. Da li može biti neka greška sa kontrolama za pristup tabelama (tdatasource). I to sam brisao i kreirao ponovo bez rezultata. Sve je ovo funkcionisalo bez grešeke do pre mesec dana i onda se nešto desilo....
Ako je radilo onda je nesto promenjeno i ako nemas duplikate kada query startujes iz konzole onda je nesto do Zeos kontrola. Probaj neku drugu verziju ili proveri da nisi ukljucio neki properti koji moze izazvati takav efekat.
Nema JOIN u upitu, a upit sa samo SELECT daje ispravan odgovor bez duplih. Sa WHERE argumentom kada imaju dva sloga obavezno prvi prikaže dva puta a sa više slogova duplira i ostale.
Malo si konfuzan sa odgovorima, kazes da taj kveri kada se proba u consoli ne vraca duplirane rezultate i da obican select ne daje duple rezultate dok kveri sa where daje (BTW kveri u kome nema [eksplicitnog] joina ne znaci da doista i nema [implicitnog] joina).
Stvar je vrlo jednostavna, u konzoli probas identican (u slovo identican) kveri i vidis da li ima dupliranih, ako nema onda je problem u zeos komponenti (ili gridu), i tu moze biti bug u samoj komponenti (zato treba da probas neku drugu verziju) ili je to neki feature (zato treba da proveris propertije koji su ukljuceni i da probas novi, potpuno prazan projekat).