Novo

Forum kao aplikacija na telefonu

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

  • 12 odgovora
  • 6.404 pregleda

Najnovija ↓

izdvajanje iz tabele... 05.03.2005. u 10:02 · pre 263 meseca #1
Imam recimo polje sa imenima,u kojem se ponavljaju ista imena...kako da izdvojim iz tabele samo razlicita imena.Npr. imam imena :dragan,pero,dragan,jovica...kako da uradim da mi u drugoj tabeli prikaze samo :dragan,pero,jovica...da ne duplira ili da ne prikazuje sva polja sa jednim imenom...
Re: izdvajanje iz tabele... 05.03.2005. u 13:53 · pre 263 meseca #2
Postoji kljucna rec: DISTINCT
Pogledaj u helpu za SQL (ne znam za koju bazu radis, ali mislim na njen help)
Potpis
Sad mu nije nista, ubio si ga k'o zeca...
Re: izdvajanje iz tabele... 06.03.2005. u 11:19 · pre 263 meseca #4
I mene ovo zanima ljudi.Da li neko ima resenje ili zna gde ga mogu potraziti.Kako iz clientdataset-a izdvojiti samo razlicite vrednosti jedne columne...
Re: izdvajanje iz tabele... 06.03.2005. u 11:41 · pre 263 meseca #5
U najgorem slucaju mozete napraviti funkciju koja uzima dataset, naziv ili index kolone i vraca stringlist u kojem su sve razlicite vrednosti. Mislim da nema potrebe za pisamnjem koda jer je to vrlo jednostavno. Bitno je samo da se funkciji prosledi otvoren dataset, bez filtriranja kako bi ona mogla da pregleda sva polja ili ako vam je bas potrebno mozete i postaviti filtere pa ce raditi samo na jednom delu dataseta. Prvo pozovete CDataSet.First i onda proveravate da li se vrednost neke odredjene kolone vec nalazi u stringlisti i ako se ne nalazi ubacite je pa CDataSet.Next sve dok nije CDataSet.Eof. To je to. Brute force, ali radi ;)
Potpis
Play Store
Re: izdvajanje iz tabele... 06.03.2005. u 19:49 · pre 263 meseca #7
Ne znam kako bih ti blize objasnio ovo :)
Jednostavno uzmes prvi record i pogledas koju vrednost sadrzi odredjena kolona, zatim pogledas u string listi da li se ta vrednost vec nalazi.Ako se nalazi ne radis nista, a ako se ne nalazi ubacis je.Posle toga predjes na sledeci record i tako do kraja. Nista komplikovano.
Kod bi izgledao otprilike ovako:
Code:
function TForm1.UzmiRazliciteVrednosti(DataSet: TDataSet;
  Column: String): TStringList;
var
  S: String;
begin
 DataSet.First;
 Result := TStringList.Create;
 while not DataSet.Eof do
 begin
   S := DataSet.FieldByName(Column).AsString;
   if Result.IndexOf(S) = -1 then Result.Add(S);
   DataSet.Next;
 end;
end;

Ovo ce ti vratiti listu stringova u kojoj ce biti sve vrednosti za neku kolonu kao sto zelis. Jedino sto moras da uradis je da posle "oslobodis" tu string listu. Znaci ako imas nesto ovako u kodu:
Code:
S := UzmiRazliciteVrednosti(CDataSet, 'Imena');

Kasnije u kodu moras imati i:
Code:
S.Free;

To je vrlo bitno inace ces imati "curenje memorije" :)
Nadam se da je pomoglo.
Potpis
Play Store
Re: izdvajanje iz tabele... 06.03.2005. u 20:23 · pre 263 meseca #8
Izgleda da nisam dobro objasnio moje neznanje.Imam
clientdataset(uradio sam lokalnu bazu-tabelu)pomocu njega.Nije
klasicna baza,referisan je na file,nema bde i sl.

Unosim recimo sledece:

ime datum iznos itd
pero .... .....
pero .... .....

I sad hocu da izracunam agregatna polja,recimo ukupnu sumu od pere i
da mi to prikaze u sledecoj tabeli
ovako:

ime ukupaniznos itd
pero 100000... ...

ja sam to sve uradio ali mi ponavlja zapise recimo:

ime ukupaniznos itd
pero 100000... ...
pero 100000... ... ponavlja koliko god sam ga puta uneo u prvu
tabelu.A ja bih da ne ponavlja :))


Neznam da li sam sad bio jasan,izvinjavam se posto nisam bas neki
strucnjak ali bih da naucim.Moze li se ovo resiti sa ovim kodom koji
si napisao?
Hvala puno na strpljenju...

--
Sve najbolje,
Enes Odgovori na:[email protected]
Re: izdvajanje iz tabele... 06.03.2005. u 21:00 · pre 263 meseca #9
Enese, u kom Delphiju radis?
Potpis
Still going strong...
Re: izdvajanje iz tabele... 06.03.2005. u 21:19 · pre 263 meseca #11
Znas sta bi bilo super... da postujes kod i fajl u kojem su ti podaci ovde pa ce biti lakse da ti pomognemo :) Sta kazes na to?
Potpis
Play Store
Re: izdvajanje iz tabele... 06.03.2005. u 21:28 · pre 263 meseca #12
Pa zasto moras da operises direktno sa podacima u bazi?
Zar ne mozes da prikazes to na drugom nekom mestu; olaksao bi sebi dosta.
Onda jednostavno pretrci bazu od pocetka i kad god je zadovoljen uslov da je vrednost polja 'pera', saberi ono polje koje sadrzi vrednost koju trazis (recimo pare) i tako sve dok ne bude eof.Taj zbir onda prikazi
Manje maltretiranja, mislim.
Proveri i u properties od DBGrid-a, kako se postavlja calculated field i sl.
Pogledaj u Fields editoru od ClientDataset-a, treba da mogu da se postavljaju agregacije. Isto tako, moras da imas postavljen index za tu kolonu.


Potpis
Still going strong...
Re: izdvajanje iz tabele... 06.03.2005. u 22:11 · pre 263 meseca #13
Sve sam ja to uradio,postavio agregacije koje mi rade,indexirao i sve
je uredu osim sto mi kad hocu to prikazati u drugoj tabeli ponavlja za
onoliko puta koliko je npr. ime pero uneto u tabelu.Nema veze,precicu
na bde,mada mi je ovako bilo elegantnije resenje.Hvala vam svima na
strpljenju i trudu.Pozdrav...

--
Sve najbolje,
Enes Odgovori na:[email protected]
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme