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

kako naci prethodni slog?

[es] :: MySQL :: kako naci prethodni slog?

[ Pregleda: 2840 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dragancesu
subotica

Član broj: 38340
Poruke: 2189
*.dynamic.isp.telekom.rs.



+73 Profil

icon kako naci prethodni slog?27.08.2015. u 09:03 - pre 104 meseci
Znam da ovo nije pitanje na koje sql zna odgovor pa da pitam kako se vi snalazite kad vam treba

Radim neku desktop aplikaciju pa mi je potrebno "kretanje kroz tabelu" tipa sledeci ali i prethodni slog, postoji neki ID autoincrement ali mi ne radi posao posto ne daje isti rezultat kad se ukljuci ORDER BY,
znam da veliki brat Oracle ima pseudo kolonu rownum pa sad gledao slicno u MySQL ali nisam nasao. Moze li se to izvesti bez koriscenja pomocnog niza/table/view? Pomocna tabela sa kolonama ID i ROWNUM mi se cini najelegantnije resenje.

Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: kako naci prethodni slog?27.08.2015. u 12:05 - pre 104 meseci
povuces ceo resultset na klijent i setas se kroz njega .. obicno se tako
resava .. samo gledas da ti resultset ne bude prevelik
na zalost kursori u mysql-u su non-scrollable tako da nema kretanja u
nazad kroz resultset na samom serveru
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: kako naci prethodni slog?27.08.2015. u 12:23 - pre 104 meseci
Ako na klijentu vodiš nekakav redni broj - index, onda možeš preko LIMIT.
Međutim, ovo neće raditi uvek tačno ako se podaci promene u međuvremenu
ili promeniš sort u sred navigacije.

Možda je najbezbolnije da na prev-next povučeš samo ID-eve po sortu
na klijent i u njemu pronađeš ID prev/next-a.

Sad, verovatno Bogdan zna da li i neko ovakvo malo prljavo rešenje
sa kumulativnim brojačem dolazi u obzir:
http://stackoverflow.com/a/3470355/461810
http://stackoverflow.com/a/12989709/461810
tako da preko toga nađeš ID odmah na serveru.

[Ovu poruku je menjao dusans dana 27.08.2015. u 13:40 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: kako naci prethodni slog?27.08.2015. u 12:56 - pre 104 meseci
> Možda je najbezbolnije da na prev-next povučeš samo ID-eve
> po sortu i u njemu pronađeš ID prev/next-a.

to rade neke komercijalne komponente za delfi/cbuilder. povuku samo PK
vrednosti i drze ih lokalno u nizu i onda ti kako picis kroz taj result
set oni vuku sa selektom samo taj slog koji ti treba preko PK-a. naravno
nece raditi ako nemas PK u tabeli ali generalno tabele bez PK-a su, kada
je mysql u pitanju, greska (ovo ne vazi za sve sql servere, ali innodb i
ndbcluster se u mysql-u prave implicitni pk koji ti ne vidis ako ti ne
navedes svoj explicitni tako da kad tabela vec mora da ima pk onda bolje
da ga napravis tako da mozes da ga koristis nego da ga imas a da ga nemas)
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: kako naci prethodni slog?27.08.2015. u 18:36 - pre 104 meseci
Citat:
znam da veliki brat Oracle ima pseudo kolonu rownum pa sad gledao slicno u MySQL ali nisam nasao.


To ni Oracle ne zna da radi. Radi se onako baš kako je Bogdan napisao. Na primer, u alatima kao što je Forms, gde imaš napred-nazad kroz redove, to radi tako što Forms učitava bulkove po 15 ili kako se definiše, a redovi se drže lokalno na disku.

Jedino za šta se koristi ROWID je da se zna koji red treba da se apdejtuje ako si u formi promenio slog, a ne za "kretanje" kroz tabelu.

P.S. Kroz Oracle kurzor može da se ide sam sekvencijalno unapred, kao na svakoj krštenoj bazi. Kretanje unazad, preskakanje slogova itd. je na aplikaciji.


[Ovu poruku je menjao djoka_l dana 27.08.2015. u 20:05 GMT+1]
 
Odgovor na temu

dragancesu
subotica

Član broj: 38340
Poruke: 2189
*.adsl.eunet.rs.



+73 Profil

icon Re: kako naci prethodni slog?27.08.2015. u 22:08 - pre 104 meseci
Hvala na odgovorima, koristio sam forms i znam kako radi ali sad pokusavam da napravim nesto tako za mysql i onda moram da razmisljam kako to radi ispod haube. Kad se podaci ucitaju u grid onda su tu i to valjda svaka aplikacija zna da vozi kako treba. Problem je sto mi se grid ne svidja, uzor mi je forms a tamo je to mnogo bolje izvedeno, ovo sa grid sam napravio i ima funkcionalnosti kao i forms (ne sve ali bar ono sto mi se cinilo vazno), recimo ListOfValue i QueryByExample. U pitanju je generator programa ali rezultat je kao kod formsa, za par minuta radi, i program treba kompajlirati.

Gledao sam i Delfi i Visual studio ali uopste nisam bio odusevljen (pre razocaran) kako se kreiraju forme za rad sa podacima.

Nesto kao Reports mi je sledece, to je isto nezgodno ali na drugi nacin, ali osnovno sam napravio




Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: kako naci prethodni slog?27.08.2015. u 22:18 - pre 104 meseci
ne znam sta ti se nije svidelo u delfiju vezano za tu pricu ali za mysql
nemas valjane dzaba komponente za delfi i cbuilder ali komercijalnih je
bilo bas dobrih .. visual studio nije imao skoro nikakvu podrsku za
mysql ... oracle je resio da "napadne" to trziste, e sad, iskreno, ja
nisam ispratio sta se tu desava uopste posto ja vs koristim samo kad bas
bas moram tako da ne znam dal je tu odradjeno nesto dobro i korisno, ali
navodno je dosta vremena ulozenu u tu neku integraciju na windozi sa
mysql-om, workbench i posebne neke fore i fazoni za visual studio...
mozes da vidis vise o tome ovde:
https://www.mysql.com/why-mysql/windows/visualstudio/ ne kosta nista,
dal valja i da li je to sto ti trazis - pojma nemam (nikad nisam probao)
 
Odgovor na temu

[es] :: MySQL :: kako naci prethodni slog?

[ Pregleda: 2840 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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