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

ADOQuery, izvrsiti editovanje podataka?!

[es] :: Pascal / Delphi / Kylix :: ADOQuery, izvrsiti editovanje podataka?!

[ Pregleda: 2236 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon ADOQuery, izvrsiti editovanje podataka?!11.05.2006. u 11:25 - pre 217 meseci
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?
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: ADOQuery, izvrsiti editovanje podataka?!12.05.2006. u 05:57 - pre 217 meseci
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

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: ADOQuery, izvrsiti editovanje podataka?!13.05.2006. u 11:33 - pre 217 meseci
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]
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

nikola.j
Nikola Janković

Član broj: 15712
Poruke: 85
*.com
Via: [es] mailing liste



Profil

icon Re: ADOQuery, izvrsiti editovanje podataka?!13.05.2006. u 12:00 - pre 217 meseci
>

Probao si bez zagrade?

update table set field1=:field1,...,fieldN=:fieldN where uslov1=:uslov1
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: ADOQuery, izvrsiti editovanje podataka?!13.05.2006. u 14:40 - pre 217 meseci
Hvala vam, uspeo sam resiti problem...

pozzz
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: ADOQuery, izvrsiti editovanje podataka?!

[ Pregleda: 2236 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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