[ Miloš Baić @ 11.05.2006. 11:25 ] @
Pozdrav...

Imam dve forme, na Form1 se nalazi DBGrid, DataSource, ADQuery. Sve je povezano. Na Form2 mi se nalaze Editi na osnovu kojih se vrsi INSERT u tabelu sa Form1(ADOQuery).
Meni je potrebno da na tu istu formu odradim:
Code:

EditJMBG.Text:=Form1.ADOTable1JMBG.AsString;
EditIME.Text:=Form1.ADOTable1IME.AsString;
EditPREZIME.Text:=Form1.ADOTable1PREZIME.AsString;

Kao sto vidite ovaj kod pokazuje kako to radim sa ADOTable, sad mi je potrebno da to odradim sa ADOQuery? Znaci, selektuje se jedno lice, npr., i pritiskom na neki Button otvara se forma sa koje smo uneli podatke, ali sad u tim editima su ispisani podaci izabranog lica koji se mogu menjati ( editovati )?!

Dalje, kako bi sad ovo:
Code:

Form1.ADOTable.Edit;
Form1.ADOTableADOOsobaJMBG.AsString := EditJMBG.Text;
Form1.ADOTableADOOsobaIME.AsString := EditIME.Text;
Form1.ADOTablePREZIME.AsString := EditPREZIME.Text;
Form1.ADOTable.Post;


editovanje odradio sa ADOQuery komponentom?
[ chachka @ 12.05.2006. 05:57 ] @
Stavis TADOQuery komponentu na formu 2. Nazoves je recimo qryUOsobe. Povezes je sa konekcijom i postavis ostale atribute.

Treba ti nesto poput:
Code:

qryUOsobe.SQL.Clear;
qryUOsobe.SQL.Add('UPDATE osobe SET ime = :ime, prezime = :prezime WHERE jmbg = :jmbg');
try
  qryUOsobe.Parameters.ParamByName('jmbg').Value := EditJMBG.Text;
  qryUOsobe.Parameters.ParamByName('ime').Value := EditIME.Text;
  qryUOsobe.Parameters.ParamByName('prezime').Value := EditPREZIME.Text;
  qryUOsobe.ExecSQL;
except on e:Exception do
  ShowMessage(e.Message);
end;

Dalje moras da izvrsis refresh podataka u gridu prve forme.


Ovo ti je samo pocetak muka pri prelasku sa TTable komponente na TQuery komponentu.

Razmisli o upotrebi TClientDataSet-a. Dobar clanak na tu temu je napisao Bill Todd i mozes ga naci na adresi http://community.borland.com/article/0,1410,27653,00.html. Doduse u njemu se prikazuje tehnika upotrebe TClientDataSet-a na IBX skup komponenti uz upotrebu InterBase-a, ali se lako tekst moze primeniti na ADO i bilo koju drugu bazu.

Chachka
[ Miloš Baić @ 13.05.2006. 11:33 ] @
Hvala na odgovoru, za pocetak.
Kod koji sam ispisao u mom slucaju je sledeci:
Code:

with Form1.ADOQuery1 do begin
     Close;
     SQL.Clear;
     SQL.Add('UPDATE Osobe SET (IME=:IME,PREZIME=:PREZIME,TIP=:TIP,...,NAPOMENA=:NAPOMENA)');
     SQL.Add('WHERE JMBG = :JMBG');
     Parameters.ParamByName('JMBG').Value:= EditJMBG.Text;
     Parameters.ParamByName('IME').Value:= EditIME.Text;
     Parameters.ParamByName('PREZIME').Value:= EditPREZIME.Text;
     Parameters.ParamByName('TIP').Value:= DBLookupComboBox1.Text;
     Parameters.ParamByName('STATUS').Value:= DBLookupComboBox2.Text;
     Parameters.ParamByName('DELATNOST').Value:= DBLookupComboBox3.Text;
     Parameters.ParamByName('ZIRO').Value:= EditZIRO.Text;
     Parameters.ParamByName('PIO').Value:= EditPIO.Text;
     Parameters.ParamByName('KIME').Value:= EditKIME.Text;
     Parameters.ParamByName('ZEMLJA').Value:= EditZEMLJA.Text;
     Parameters.ParamByName('MESTO').Value:= EditMESTO.Text;
     Parameters.ParamByName('ULICA').Value:= EditULICA.Text;
     Parameters.ParamByName('TEL1').Value:= EditTEL1.Text;
     Parameters.ParamByName('TEL2').Value:= EditTEL2.Text;
     Parameters.ParamByName('TEL3').Value:= EditTEL3.Text;
     Parameters.ParamByName('FAX').Value:= EditTELFAX.Text;
     Parameters.ParamByName('EMAIL').Value:= EditEMAIL.Text;
     Parameters.ParamByName('KONTAKT1').Value:= EditKONTAKT.Text;
     Parameters.ParamByName('NAPOMENA').Value:= MemoNAPOMENA.Text;
     ExecSQL;
end;

Medjutim, kad izaberem neko lice za UPDATE i recimo izmenim polje IME, tad se prijavi greska: Line1:Incorrect Syntax near '(''!!!?
Da ne bude zabune, u redu:
SQL.Add('UPDATE Osobe SET (IME=:IME,PREZIME=:PREZIME,TIP=:TIP,STATUS=:STATUS, ... ,NAPOMENA=:NAPOMENA)');
ove ... tackice sam postavio radi estetike, da kod ne bi zauzeo puno prostora u postu.

Pomozite mi da resim problem, hvala unapred...

[Ovu poruku je menjao loshmiscg dana 13.05.2006. u 12:34 GMT+1]
[ nikola.j @ 13.05.2006. 12:00 ] @
>

Probao si bez zagrade?

update table set field1=:field1,...,fieldN=:fieldN where uslov1=:uslov1
[ Miloš Baić @ 13.05.2006. 14:40 ] @
Hvala vam, uspeo sam resiti problem...

pozzz