Novo

Forum kao aplikacija na telefonu

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

  • 4 odgovora
  • 2.787 pregleda

Najnovija ↓

ADOQuery, izvrsiti editovanje podataka?! 11.05.2006. u 12:25 · pre 249 meseci #1
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?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: ADOQuery, izvrsiti editovanje podataka?! 12.05.2006. u 06:57 · pre 249 meseci #2
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
Potpis
"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
Re: ADOQuery, izvrsiti editovanje podataka?! 13.05.2006. u 12:33 · pre 249 meseci
izmenjeno 1 put, poslednji put loshmiscg 13.05.2006. u 12:34
  1. loshmiscg13.05.2006. u 12:34zapis iz teksta poruke
#3
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...
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: ADOQuery, izvrsiti editovanje podataka?! 13.05.2006. u 15:40 · pre 249 meseci #5
Hvala vam, uspeo sam resiti problem...

pozzz
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme