[ Miloš Baić @ 17.03.2006. 11:36 ] @
Napravio sam tabelu koja sadrzi ID, Prezime, Ime. Na formi sam postavio ADOQuery i DBGrid, to je forma za filtriranje lica čiji se rezultat prikazuje u DBGrid-u. Napravio sam još jednu novu formu na kojoj ce se vršiti UNOS-IZMENE podataka na osnovu dinamickih edita. Ta forma se poziva sa forme za pretragu na osnovu klika na dugme 'Unos Osoba', kod za to dugme je:
Code:

...
 public
    { Public declarations }
    FilterList:TStringList;
...
var
 i:Integer;
begin
  UnOsoba:=TUnOsoba.Create(Self);
      for i:=0 to ADOOsoba.FieldCount-1 do
      UnosOsoba.FilterList:=TStringList.Create();
      UnosOsoba.FilterList.Add('ID');
      UnosOsoba.FilterList.Add('JMBG');
      UnosOsoba.FilterList.Add('IME');
      UnosOsoba.FilterList.Add('PREZIME');

Posle ovoga na formi 'Unos Osoba' imamo "OnActivate" :
Code:

...
 public
    { Public declarations }
    FilterList:TStringList;
...
var i:integer;
begin
    for i:=0 to FilterList.Count-1 do begin
    eFieldsList[i]:=TEdit.Create(pTopSifr);
    lFieldsList[i]:=TLabel.Create(pTopSifr);
    eFieldsList[i].Top:=(i div 4)*87 + 19;
    lFieldsList[i].Top:=(i div 4)*88 + 2;
    eFieldsList[i].Left:=((i mod 4)*235)+10;
    lFieldsList[i].Left:=((i mod 4)*235)+10;
    eFieldsList[i].Width:=205;
    eFieldsList[i].Height:=30;
    lFieldsList[i].Caption:=FilterList.Strings[i];
    eFieldsList[i].Parent:=pTopSifr;
    lFieldsList[i].Parent:=pTopSifr;
    lFieldsList[i].Font.Style:=lFieldsList[i].Font.Style + [fsBold];
    eFieldsList[i].Font.Style:=lFieldsList[i].Font.Style + [fsBold];
  end;
  eFieldsList[0].SetFocus;

Tada se otvori ta forma za unos - izmene i pojave se editi sa labelima za ID, JMBG, Prezime i Ime.
Meni je problem kako sad iz tih edita da memorišem podatke u Tabelu. U pitanju je ADOQuery?! Nešto slično ovome

Code:
INSERT INTO ImeTabele (ListaPolja) VALUES (VrednostiPolja)
[ Almedin @ 17.03.2006. 20:49 ] @
prodji opet kroz sva edit polja i uzmi vrijednosti sa

TEdit(eFieldsList).Text

i kreiraj string za update

nesto ovako

var
i: integer;
v: string;
f: string;
sql: string;
begin
v := '';
f := '';
for i:=0 to FilterList.Count-1 do begin
if i > 0 then begin
v := v + ', ';
f := f + ', ';
end;
v := v + TEdit(eFieldsList).Text;
f := f + FilterList.Strings + ', ';
end;

sql := 'INSERT INTO ImeTabele (' + f + ') VALUES (' + v + ')';

vjerovatno treba doraditi malo
[ Miloš Baić @ 18.03.2006. 03:17 ] @
Hmmm..???? Prvo, hvala na odgovoru... Drugo, nisam baš uspeo rešiti problem... Ovaj rad sa stringovima baš i nisam najbolje razumeo. Naime, evo koda koji pokazuje šta sam razumeo:
Code:
...
var
 i:Integer;
 temp,temp1:string;
begin
  UnosOsoba:=TUnOsoba.Create(Self);
      for i:=0 to ADOOsoba.FieldCount-1 do
      UnosOsoba.FilterList:=TStringList.Create();
      UnosOsoba.FilterList.Add('JMBG');
      UnosOsoba.FilterList.Add('IME');
      UnosOsoba.FilterList.Add('PREZIME');

   if UnosOsoba.ShowModal = mrOK then
       begin
        for i:=1 to FilterList.Count-1 do begin
         if temp='' then
            temp:=' '''+FilterList.Strings[i]+''' '
         else
            temp:=temp+', '''+FilterList.Strings[i]+''' ';
           if temp1='' then
              temp1:=' '''+eFieldsList[i].Text+''' '
           else
              temp1:=temp1+', '''+eFieldsList[i].Text+''' ';
        end;
            UnosOsoba.ADOOsoba.Close;
            UnosOsoba.ADOOsoba.SQL.Clear;
            UnosOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (' + temp + ') VALUES (' + temp1 + ')');
            UnosOsoba.ADOOsoba.ExecSQL;

Kao što se vidi, ovaj kod se nalazi na formi za pretragu lica, a pritiskom na Button 'UNOS' otvara se forma sa Editima JMBG, IME, PREZIME. Na njoj se nalazi dugme za čiju akciju OnClick je obrađen kod na formi za pretragu, akcija za unos podataka:
Code:
if UnOsoba.ShowModal = mrOK then
       begin
        for i:=1 to FilterList.Count-1 do begin
         if temp='' then
            temp:=' '''+FilterList.Strings[i]+''' '
         else
            temp:=temp+', '''+FilterList.Strings[i]+''' ';
           if temp1='' then
              temp1:=' '''+eFieldsList[i].Text+''' '
           else
              temp1:=temp1+', '''+eFieldsList[i].Text+''' ';
        end;
            UnOsoba.ADOOsoba.Close;
            UnOsoba.ADOOsoba.SQL.Clear;
            UnOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (' + temp + ') VALUES (' + temp1 + ')');
            UnOsoba.ADOOsoba.ExecSQL;

Kad pokrenem program prijavljuje mi grešku "Invalid Object Name 'Osoba' ", to bi trbalo biti problem u vezi tabele Osoba?! Ali ja sam i na formi za unos i pretragu postavio ADOQuery ( na obe forme ADOOsoba - naziv ) i DataSet i povezao sa tabelom Osoba! Ti podaci koje sam uneo kros Server za Bazu se vide u DBGrid-u?!
Sad mi je problem opet to memorisanje?

[Ovu poruku je menjao loshmiscg dana 18.03.2006. u 14:46 GMT+1]
[ martinj @ 19.03.2006. 05:11 ] @
Prvo, koristi parametre... Umesto

Code:

UnOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (' + temp + ') VALUES (' + temp1 + ')');


stavi

Code:

UnOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (polje1, polje2, polje3) VALUES (:polje1, polje2, polje3));
UnOsoba.ADOOsoba.Parameters.ParamByName('polje1').Value := NekaVrednost1;
UnOsoba.ADOOsoba.Parameters.ParamByName('polje2').Value := NekaVrednost2;
UnOsoba.ADOOsoba.Parameters.ParamByName('polje3').Value := NekaVrednost3;


Koliko vidim, nigde nisi dao konekciju za UnOsoba...

Code:

 UnosOsoba:=TUnOsoba.Create(Self);
 UnOsoba.Connection := ADOConnection1; // Ovo ti  fali. 
[ Miloš Baić @ 19.03.2006. 11:54 ] @
Što se tiče parametara, stvar je jasna, ali ja sam pravio, kao što se vidi, listu polja i koristio stringove na osnovu čega bi vršio unos. Ako bi koristio parametre, mogao bih navesti polja ali kako u mom slučaju, filter liste, da navedem vrednosti?!
Code:
UnosOsoba:=TUnOsoba.Create(Self);
 UnosOsoba.ADOQuery1.Connection := ADOConnection1;

Ovo je spojeno, ADOQuery sa forme za unos je spojen sa ADOConnection na formi za pretragu. Ali i dalje, kad pokrenem program i sa forme za pretragu pokrenem formu za unos, kreira se lista edita ( polja ) u koju upisujem podatke i pritiskom na memorisanje izbacuje se ista greška:
Code:
Invalid Object Name Osoba

i poplavi red:
Code:
UnOsoba.ADOOsoba.ExecSQL;

Dugme za memorisanje na formi za unos je spojeno sa ovim kodom:
Code:
UnosOsoba.ADOOsoba.Close;
           UnosOsoba.ADOOsoba.SQL.Clear;
           UnosOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (' + temp + ') VALUES (' + temp1 + ')');
           UnosOsoba.ADOOsoba.ExecSQL;
[ martinj @ 19.03.2006. 17:39 ] @
Probaj ovako...

izbaci

Code:

 UnOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (' + temp + ') VALUES (' + temp1 + ')');


i umesto toga, rucno postavi vrednosti

Code:

 UnOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (pollje1, polje2...) VALUES (1, 2...)'); 


da vidis da li je u tome problem...

ili

Postavi watch na temp i temp1 da vidis vrednosti tih promenljivih. Mozda je u njima neka vrednost koja ne bi smela tu da bude...

Koju bazu koristis?
Access?
[ Miloš Baić @ 20.03.2006. 00:10 ] @
Pozdrav....
Ovaj kod:
Code:
 UnOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (pollje1, polje2...) VALUES (1, 2...)'); 

valja!!! Hoću reći, memorisanje u tom obliku ide, uspeva...
Citat:
Postavi watch na temp i temp1 da vidis vrednosti tih promenljivih. Mozda je u njima neka vrednost koja ne bi smela tu da bude...

Možda bi ovo moglo da mi pomogne?! Kako to sa 'watch' da odradim?!
Tabelu na kojoj ovo radim sam napravio u MS SQL Server 2000 - rci !!! Školski?!
[ martinj @ 20.03.2006. 19:10 ] @
Osnove rada sa IDE...

postavi break point na liniju u kojoj su ti promenljive temp i temp1, iz view menija ukljuci "watches" i negde ih zalepi uz ekran. U "watches" postavi obe promenljive (desni klik na promeljivu, "debug/add watch") i pokreni program..
Kad program dodje do break point-a zaustavice se i mocices da vidis vrednost promenljivih u watch prozoru ili kao hint ako zadrzis kursor iznad promenljive...

edit: ako ti bez promeljivih upit radi, onda je problem u vrednostima koje promenljive imaju... znaci, temp i temp1 imaju neke pogresne vrednosti...

[Ovu poruku je menjao martinj dana 20.03.2006. u 20:11 GMT+1]
[ Miloš Baić @ 20.03.2006. 22:54 ] @
Uradio sam kako si rekao i postavio iznad temp i temp1 i dobio hint:
Citat:
temp= ''Prezime' , 'JMBG''

Citat:
temp1= ' '' , '' '

Komentar?!

Verovatno je problem u:
Code:
for i:=1 to FilterList.Count-1 do begin
         if temp='' then
            temp:=' '''+FilterList.Strings[i]+''' '
         else
            temp:=temp+', '''+FilterList.Strings[i]+''' ';
           if temp1='' then
              temp1:=' '''+eFieldsList[i].Text+''' '
           else
              temp1:=temp1+', '''+eFieldsList[i].Text+''' ';

jer ovo:
Code:
UnosOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (polje1, polje2...) VALUES (1, 2...)'); 

funkcioniše?!!!

U MS SQL Server - u sam za kolone postavio tip nvarchar, sem prve, ID, gde je Identity = Yes. Znači, oni se automatski upisuju u tabelu?!!!



[Ovu poruku je menjao loshmiscg dana 21.03.2006. u 00:00 GMT+1]
[ martinj @ 21.03.2006. 00:16 ] @
String sa parametrima ti je prazan i u tome ti je problem, a baza je verovatno napravljena tako da polja ne primaju nul vrednosti. Nemam neko iskustvo sa ms serverom posto uglavnom koristim mysql, ali pretpostavljam da je to problem.
E sad, ako polja iz kojih citas vrednosti koje treba da se upisu u bazu imaju neku vrednost onda imas problem.
Ako ne, onda samo proveri definiciju tabele na serveru i ako je napravljena tako da ne prima nul vrednosti to promeni i problem resen...

Sto se tice parametara, mozes da napravis novi TStringList i u petlji u kojoj popunjavas temp1 da umesto temp1 ubacujes vrednosti u string listu a kasnije iz string liste dodeljujes parametrima vrednost petljom

Code:

for i := 0 to stringlist.count - 1 do
begin
  Parameters[i].Value := StringList.Strings[i];
end;


I ono sto ne razumem, zasto moras da dinamicki kreiras edit kontrole?

edit: mislim da imas problem sa citanjem vrednosti iz dinamicki kreiranih kontrola a da je sam kod koji radi upis u tabelu ok...

[Ovu poruku je menjao martinj dana 21.03.2006. u 01:17 GMT+1]
[ Miloš Baić @ 21.03.2006. 00:46 ] @
Druže, tebi zaista hvala puno, ali nešto iz nekog razloga ne funkcioniše?!!!
Zašto hoću ovako da radim i zašto sam uporan? Pa zato što smatram da je to pravi način rada. Naravno, to je diskutabilno, jer svako ima svoj način rada, jel?! Napravio sam pomoću ADOTable ovaj primer. Znači, imam formu za pretragu i za Unos-Izmene. Sa forme za pretragu pokrećem formu za unos - izmene. Memorisanje radi ovako, pretpostavljam da znaš:
Code:
with ADOUnos do
     begin
      Insert;
      FieldByName('JMBG').Value := EditJMBG.Text;
      FieldByName('IME').Value := EditIME.Text;
      FieldByName('PREZIME').Value := EditPREZIME.Text;
      Post;
     end;


A izmene sa iste forme, ali prvo sa forme za pretragu prenesem vrednosti isfiltriranog, recimo lica, u te edite:
Code:
procedure TIzmeneOsoba.FormActivate(Sender: TObject);
begin
    EditJMBG.Text:=PretragaOsoba.ADOOsobaJMBG.AsString;
    EditIME.Text:=PretragaOsoba.ADOOsobaIME.AsString;
    EditPREZIME.Text:=PretragaOsoba.ADOOsobaPREZIME.AsString;


Pa onda izmene:
Code:
PretragaOsoba.ADOOsoba.Edit;
PretragaOsoba.ADOOsobaJMBG.AsString := EditJMBG.Text;
PretragaOsoba.ADOOsobaIME.AsString := EditIME.Text;
PretragaOsoba.ADOOsobaPREZIME.AsString := EditPREZIME.Text;
PretragaOsoba.ADOOsoba.Post;


Hteo bih baš ovo sa ovim editima da naučim?! Da li bi mogao postaviti neki primer sa neka tri polja u tabeli, JMBG, IME, PREZIME i obraditi UNOS i IZMENE, da vidim konkretno. Formu sa DBGrid - om i jednu za unos - izmene. Ako budeš imao vremena, napravi sa BDE - om, tabelu, najmanje sa source code - om će zauzeti?!
Ako ne, hvala ti i na ovim odgovorima i posvećenom vremenu, pa ću ako napravim neki korak postovati opet!!!
[ aleksandarpopov @ 21.03.2006. 13:06 ] @
Napisi klasu koja ce biti npr. Osoba, pacijent, sta god sa poljima kao sto ima tvoja tabela, napisi procedure koje ce obavljati sve tvoje operacije prema bazi, insert updat delete ... sa SQl - om otprilike kao sto si napisao...sve to testiras bez korisnickog interfejsa, pa zatim tu klasu koristis posle kako hoces, korisnicki interfejs pravis kako hoces...dinamicki, u designeru...sve jedno...bitno da razdvojis logiku baze, poslovnu logiku i logiku korisnickog interfejsa...
Pozdrav....
[ Miloš Baić @ 21.03.2006. 23:44 ] @
Najbolje bi bilo kada bi se:
Citat:
Da li bi mogao postaviti neki primer sa neka tri polja u tabeli, JMBG, IME, PREZIME i obraditi UNOS i IZMENE, da vidim konkretno. Formu sa DBGrid - om i jednu za unos - izmene. Ako budeš imao vremena, napravi sa BDE - om, tabelu, najmanje sa source code - om će zauzeti?!
[ johnnie @ 22.03.2006. 11:42 ] @
A zasto koristis editbox, zar ne mozes da koristis TDBEdit, a zatim radis post (ili cancel, ak ne zelis izmenu?).
Ako vec prenosis vrednosti iz tabele u string, uradi bezbedno prevodjenje ( datum -> string itd), izbegni nul vrednosti itd...Pa tek onda vrsi upis u tabelu...
[ Miloš Baić @ 22.03.2006. 14:40 ] @
Citat:
johnnie: A zasto koristis editbox, zar ne mozes da koristis TDBEdit, a zatim radis post (ili cancel, ak ne zelis izmenu?).
Ako vec prenosis vrednosti iz tabele u string, uradi bezbedno prevodjenje ( datum -> string itd), izbegni nul vrednosti itd...Pa tek onda vrsi upis u tabelu...


Vidi, sve to sam odradio sa ADOTable. Znači, jedna forma za pretragu, na njoj imam dva dugmeta ( UNOS, IZMENE ). Druga forma sadrži edite i na njoj u zavisnosti od uslova vršim UNOS - IZMENE. Kad se otvori forma za UNOS - IZMENE i ispunjen je uslov za UNOS, punjenje u bazu radim na sledeći način:
Code:
with ADOOsobaUn  do
begin
  Insert;
     FieldByName('IME').Value := EditIME.Text;
     FieldByName('PREZIME').Value := EditPREZIME.Text;
      ...
   Post;
end

Znači, na taj način radim i da se u te iste edite pune podaci iz tabele za izmenu (Edit)... Potom ih editujem...

U ovom mom sadašnjem slučaju sam koristio pored watches i:
Code:
UnosOsoba.ADOOsobaUn.SQL.SaveToFile('query.txt');

i dobio kao rezultat:

Citat:
INSERT INTO Osoba ( 'Prezime' , 'JMBG' ) VALUES ( '' , '' )


Kao što sam naveo, u tabeli polja sam stavio na nvarchar, sem kolone ID koja je int i Identity je na Yes. Dozvolio sam i 'Allow Nulls' na Yes.

Bezbedno prevođenje u string odraditi u ovom delu?!
Code:
 UnosOsoba.ADOOsoba.SQL.Add('INSERT INTO Osoba  (' + temp + ') VALUES (' + temp1 + ')');

Ako da, kako je najpravilnije to odraditi?
[ Almedin @ 22.03.2006. 19:34 ] @
Code:
if temp1='' then
              temp1:=' '''+eFieldsList[i].Text+''' '
           else
              temp1:=temp1+', '''+eFieldsList[i].Text+''' ';


Stavi breakpoint na ovaj dio koda pa vidi zašto ne uzima vrijednosti iz TEdit polja.
[ Miloš Baić @ 22.03.2006. 23:46 ] @
Kad sam to odradio kaže ovako
Citat:
eFieldsList = ( nil, nil, nil, ..., nil)

Vrednosti iz TEdit polja ne uzima verovatno zbog ovoga?! Šta sad?

Da podsetim, ovako izgleda:
Code:
for i:=1 to FilterList.Count-1 do begin
         if temp='' then
            temp:=' '''+FilterList.Strings[i]+''' '
         else
            temp:=temp+', '''+FilterList.Strings[i]+''' ';
           if temp1='' then
              temp1:=' '''+eFieldsList[i].Text+''' '
           else
              temp1:=temp1+', '''+eFieldsList[i].Text+''' ';
[ Trodmi @ 23.03.2006. 02:39 ] @
E zbog ovakvih stvari sam ja otvorio sajt.
http://www.delcode.com/Database.zip
[ johnnie @ 23.03.2006. 08:09 ] @
Probaj da proveravas
Code:
Trim(temp1)='' ili 
length(trim(temp1))=0
, u praksi radi bolje nego
Code:
if temp1=''
, ne pitaj me zasto, nikad mi nije bilo jasno ali radi...
A bezbedno prevodjenje u string, mislio sam na slucajeve kada unosis datum ili nesto slicno, sto treba biti formatirano a ne koristis maskedit...Znaci, u editu na onkeypress event postavi
Code:
if not key in ['0'..'9','.'] then key:=#0;
;(ili koji ti vec karakteri trebaju odnosno koji smeju biti uneti...
[ Miloš Baić @ 23.03.2006. 09:26 ] @
Citat:
Trodmi: E zbog ovakvih stvari sam ja otvorio sajt.
http://www.delcode.com/Database.zip

Da, naišao sam i ja na taj primer, ranije, ali nema source code - a nego tek kad se kupi... Vidi:
http://www.shareit.com/product.html?productid=300046654
[ Miloš Baić @ 23.03.2006. 15:52 ] @
Jedino do sad što sam uspeo jeste to da kod:
Code:
for i:=1 to FilterList.Count-1 do begin
         if temp='' then
            temp:=' '''+FilterList.Strings[i]+''' '
         else
            temp:=temp+', '''+FilterList.Strings[i]+''' ';
           if temp1='' then
              temp1:=' '''+eFieldsList[i].Text+''' '
           else
              temp1:=temp1+', '''+eFieldsList[i].Text+''' ';


sam modifikovao u:
Code:
for i:=1 to UnosOsoba.FilterList.Count-1 do begin
         if temp='' then
            temp:=' '''+UnosOsoba.FilterList.Strings[i]+''' '
         else
            temp:=temp+', '''+UnosOsoba.FilterList.Strings[i]+''' ';
           if temp1='' then
              temp1:=' '''+UnosOsoba.eFieldsList[i].Text+''' '
           else
              temp1:=temp1+', '''+UnosOsoba.eFieldsList[i].Text+''' ';
         end;


i na osnovu:
Code:
UnosOsoba.ADOOsobaUn.SQL.SaveToFile('query.txt');

što je sastavni deo:
Code:
UnosOsoba.ADOOsobaUn.Close;
            UnosOsoba.ADOOsobaUn.SQL.Clear;
            UnosOsoba.ADOOsobaUn.SQL.Add('INSERT INTO Osoba  (' + temp + ') VALUES (' + temp1 + ')');
            UnosOsoba.ADOOsobaUn.SQL.SaveToFile('query.txt');
            UnosOsoba.ADOOsobaUn.ExecSQL;

dobio sledeće u query.txt:
Citat:
INSERT INTO Osoba ( 'JMBG' , 'IME' , 'PREZIME' ) VALUES ( '2606981890046' , 'Pera' , 'Petrovic' )


Koliko shvatam, sad je prihvatio punjenje ali neće da memoriše u tabelu. Kaže lepo:
Citat:
Invalid Object name 'Osoba'

A 'Osoba' je tabela u koju se treba memorisati?!!!
[ Almedin @ 23.03.2006. 21:13 ] @
Probaj

Code:
INSERT INTO "Osoba"...
[ Trodmi @ 24.03.2006. 00:17 ] @
A bre, al' si se upetlj'o, poslacu ti ja source na email, ionako je moj sajt...
[ Miloš Baić @ 24.03.2006. 01:00 ] @
Stvarno, ovo više nema smisla...
Ajd pošalji na mail...
[ Trodmi @ 24.03.2006. 01:46 ] @
Sredjeno
[ Miloš Baić @ 24.03.2006. 18:22 ] @
Probao sam sa ADOTable?! Punjenje:

Code:
 with ADOTable1 do begin
             Insert;
              FieldByName(UnOsoba.FilterList.Strings[i]).Value := UnOsoba.eFieldsList[i].Text;
             Post;
          end;


Ovako se memoriše u tabelu, napokon, ali, vrednost koju unosim za JMBG je u jednom redu, vrednost za IME u redu ispod, a vrednost za PREZIME u još jednom redu ispod... Znači, svaku kolonu unosi u novi red:

Code:
JMBG          | IME           |  PREZIME 
2606981890046
                     Pera
                                Petrovic
5464652546554
                     Zoki
                                Zoric


Kako dovesti do toga da se punjenje vrši u jedan red, kako treba?





[Ovu poruku je menjao loshmiscg dana 27.03.2006. u 18:07 GMT+1]
[ Almedin @ 24.03.2006. 20:52 ] @
onda radi ovako

;
Code:

with ADOTable1 do begin
             Insert;
             for i := 0 to UnOsoba.FilterList.Count -1 do
              FieldByName(UnOsoba.FilterList.Strings[i]).Value := UnOsoba.eFieldsList[i].Text;
             Post;
          end
[ Miloš Baić @ 25.03.2006. 01:51 ] @
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Napokon, ljudi, uspeo sam.... Zahvaljujem se svima....
Ali... vratiću se i na ADOQuery, na to isto ali sa SQL upitima, kad malo odanem.... Moram i to rešiti....

Pozzzz