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

ADO u Delphi-ju - tutorial

[es] :: Pascal / Delphi / Kylix :: ADO u Delphi-ju - tutorial
(TOP topic)

[ Pregleda: 20936 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1926
*.smin.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+472 Profil

icon ADO u Delphi-ju - tutorial18.06.2004. u 19:45 - pre 195 meseci
Za početak uvek treba da imate svežu verziju ADO-a.
Skinite najnoviju verziju sa www.microsoft.com/data .
I ukoliko imate Delphi i ono iznad možemo da se upustimo u nezaboravnu avanturu!

Pre nego što bilo šta uradimo sa bazom (osim što je napravimo) Prvo treba da vidimo kako da se povežemo sa povežemo. Napravite bazu podataka u Accessu sa tabelama tab_knjige i tab_clanovi. U tim tabelama kreirajte polja ID koje stavite kao primarno i kao Autonumber i Ime koje stavite kao string.

Pokrenite Delphi i otvorite novi form.

Za početak trebaće nam komponente:
DBGrid na DataControls component tabu - Služi da pregledavamo tabelu ili querije.

DataSource (DataAccess tab) služi da obezbedi vezu između table i DBGrida, i da omogući editovanje tabela.

I konačno ADOTable (ADO tab) koji predstavlja vezu između baze podataka i aplikacije.

Ako sada pritisnete F9 vedećete da u gridu nema ničega, to je naravno iz razloga jer se mi još nismo povezali sa bazom.

U object Inspectoru izmenite sledaće:

DBGrid1.DataSource = DataSource1
DataSource1.DataSet = ADOTable1

Sada treba da napravimo vezu. Ova veza pokazuje gde je tabela i kako da joj aplikacija pristupa. Kliknite svojstvo ConnectionString koje ćete naći u object inspectoru AdoTable komponente. Sada kliknite na tri tačkice i otvoriće vam se novi prozor.

Kada gradimo konekciju imamo dva izbora: da koristimo Data Link File (.UDL) ili da ručno izgradimo konekciju. Mi ćemo ručno da je kreiramo. Pritisnite Build dugme otvoriće vam se novi prozor. Provider tabvam omogućava da izaberete "provajdera". Odaberite Microsoft Jet 4.0 OLE DB Provider. Sada kliknite na Next. Kliknite na tri tačkice i pronadjite bazu koju ste napravili. Ukoliko ste napravili username i password za tablu unesite ga ispod.Kliknite na Test Connection i ukoliko je sve dobro delphi će vas obavestiti o tome. Sada kliknite na OK dva puta, da biste zatvorili sve prozore.

Ponovo se vraćamo na Object Inspectora. Podesite ovako:

ADOTable1.TableName = tab_knjige

Naravno tab_knjige možete zameniti imenom vaše tableu bazi podataka.


Ako želite da vidite podatke tokom rada sa bazom podesite svojstvo ADOTable Active property - na True!

To je bilo to za danas sutra nas očekuje nastavak: Kako da izmenimo, brišemo ili dodajemo podatke u bazi.

Nastaviće se...
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1926
*.smin.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+472 Profil

icon Re: ADO u Delphi-ju - tutorial19.06.2004. u 17:05 - pre 195 meseci
Otvorite ili napravite ako niste sačuvali apliakciju iz prethodnog posta, malo proširite formu i dodajte sledeće komponente.

<> DBNavigator komponentu (Data Controls tab). Ova komponenta sadrži dugmad potrebnu za navigaciju kroz bazu.

Sada iskoristite Object Inspector i postavite ovako svojstva:

DBNavigator1.DataSource = DataSource1

Fields
DBGrid služi za pregledanje baze (tabele). Iako se može koristiti za izmenu informacija bolje je da koristimo Field objekte.

Najlakši način da postavimo DBEdit na formu je sledeći:

1. Otvorite Fields editor duplim klikom na ADOTable komponentu.
2. Dodajte polja dako što ćete desnim dugmetom miša kliknuti na Field Editor, pritisnuti Add Fields i pritisnuti OK.
3. Izaberite neko polje, na primer tab_knjige i prevucite ga na formu.

Delphi automatski postavlja label iznad polja. Ukoliko pokrenete aplikaciju i izaberete neko polje u DBGridu u Fieldu će se automatski odgovarajuće polje iz tabele pojaviti gde ga možete menjati.

"Hodanje po tabeli"

Sada kada smo sve podesili trebaju nam alati za pomeranje po tabeli, dodavanje, brisanje ili otkazivanje promena tabeli.
To sve nam pruža DBNavigator. Na formu ga postavite sa Data Controls taba. U Object Inspectoru postavite vrednosti ovako:

DBNavigator1.DataSource = DataSource1

Pokrenite aplikaciju i eksperimentišite sa DBNavigatorom, mislim da vam ne trebam objašnjavati šta koje dugme radi!

To be continued...
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1926
195.252.80.*

Sajt: stackoverflow.com/users/1..


+472 Profil

icon Re: ADO u Delphi-ju - tutorial22.06.2004. u 12:59 - pre 195 meseci
U prethodnim lekcijama naučili smo kako da se povežemo sa bazom, pregledavamo

bazu i slično. Sada ćemo da vidimo kako da brišemo, dodajemo ili menjamo podatke

iz tabele bez DBGrida ili Field-ova.

Kao i obično napravite konekciju izmedju baze i aplikacije (ili samo otvorite aplikaciju iz

prethodnog posta).


Editing a record

Kod u programu bi izgledao ovako:

ADOTable1.Edit;
ADOTable1Ime.AsString := 'Knjiga';
ADOTable1.Post;

Da vam objasnim šta koji red znači:
U prvom redu tabla se stavlja u edit mod (znači ovaj red vam omogućava editovanje)
U drugom redu polje tabele Ime menja sa u string "Ime"
U trećem redu sa komandom "post" izmene se primenjuju na tabelu.

Napravite jedno dugme na formi i proceduri click unesite ovaj kod, pokrenite aplikaciju

i kliknite na dugme da shvatite.

Dodavanje novih podataka

Najlakši način da dodate vrednost u tablu je korišćenjem DBNavigatora, ali ako baš

hoćete da to uradite bez komponente, evo vam!

Code:

with ADOTable1 do begin
 Insert;
 FieldByName('Ime').Value := 'Orlovi rano lete';
 Post;
 end;


Objašnjenje

Insert; - - komanda koja ubacuje vrednost u ćeliju(e)
FieldByName('Ime').Value := 'Orlovi rano lete'; - ubacuje u ćeliju Ime

vrednost Orlovi rano lete
Post; - Primenjuje gornje na tabelu

Napomena:
Ukoliko želite da popunite više ćelija odjednom za sada morate da koristite

naredbu FieldByName više puta. Kasnije ćemo videti kako to možemo da

izbegnemo. Na primer
Code:

with ADOTable1 do begin
 Insert;
 FieldByName('Ime').Value := 'Orlovi rano lete';
 FieldByName('Pisac').Value := 'Branko Ćopić';
 FieldByName('Izdata').Value := '1979';
 Post;
 end;


Očekujte nastavak

 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1926
195.252.80.*

Sajt: stackoverflow.com/users/1..


+472 Profil

icon Re: ADO u Delphi-ju - tutorial02.07.2004. u 19:35 - pre 195 meseci
Idemo dalje...

Preporučujem vam da skinete source programa odavde:

http://members.lycos.co.uk/satpass .

Danas ćemo naučiti kako da filtriramo podatke i kako da pretražujemo bazu.

**********************************************************
Filtriranje podataka
**********************************************************

Ukoliko želite da se prikažu samo neki delovi baze onda treba primeniti filtriranje

podataka. To se lako radi, samo treba da vidite kako, a evo kako:

Code:

ADOTable1.Filter := 'ID = 2';
ADOTable1.Filtered := true;


Da pojasnimo:
ADOTable1.Filter := 'ID = 2'; -- Ovo filtrira podatke: Traži u polju

ID vrednost 2 i prikazuje samo taj

rekord.
ADOTable1.Filtered := true; -- Bez ovoga ništa ne vredi, znači ne

primenjuje se filtriranje!


Ukoliko želite da filtrirate neki string moraćete to uraditi putem ove komande:
Code:

ADOTable1.Filter := 'Naziv = ' + QuotedStr(Edit1.Text);
ADOTable1.Filtered := true;

U čemu je fora? Fora je u QuotedStr. Videli ste njenu strukturu pa je koristite!

Dalje, u koliko želite da filtrirate više od jednog polja odjednom morate koristiti OR ili / i

AND. Kakva je struktura, pitate se sada. A ja vam dajem odgovor!!!!
Code:

ADOTable1.Filter := 'Naziv = ' + QuotedStr(Edit1.Text) 
    + ' AND ID < 5 OR Godina = 2003';
ADOTable1.Filtered := true;


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
PRETRAGA
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Kako da pretražite bazu? Lako!
Ovako!

Code:

procedure TForm1.Edit7Change(Sender: TObject);
var searchstring : String ; polje: String;
begin
searchstring := Edit7.Text ;
polje := Edit8.Text;
ADOTable1.Locate(polje,searchstring ,[]) ;
end;

Ovo ne treba objašnjavati posebno samo da u poslednjem redu unutar [ ] treba da

stoje opcije o kojima sada nećemo detaljno.
Sutra nas očekuje još posla pa zato se pripremite!

 
Odgovor na temu

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

Član broj: 72468
Poruke: 1155
*.ptt.yu.



Profil

icon Re: ADO u Delphi-ju - tutorial31.10.2005. u 13:50 - pre 178 meseci
Filtriranje po pocetnom slovu:

Code:

    ADOTable1.Filter := 'Naziv_kolone  LIKE ' + QuotedStr(Edit1.Text + '%');
    ADOTable1.Filtered := true;
    




[Ovu poruku je menjao loshmiscg dana 20.01.2006. u 01:23 GMT+1]
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

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

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



Profil

icon Re: ADO u Delphi-ju - tutorial20.01.2006. u 00:20 - pre 176 meseci
Sortiranje odredjene kolone:

Code:
ADOTable1.Sort:= 'Naziv_kolone ASC';



Brisanje reda u tabeli:

Code:
if not ADOTable1.Eof then
           begin
            ADOTable1.Delete;
            ADOTable1.FindFirst
           end
else
           ADOTable1.Delete;
           ShowMessage('Poslednji red u tabeli je izbrisan!');
           ADOTable1.First




[Ovu poruku je menjao loshmiscg dana 20.01.2006. u 01:38 GMT+1]
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

MASSK
Kire Timov
Strumica

Član broj: 9655
Poruke: 14
62.162.141.*



Profil

icon Re: ADO u Delphi-ju - tutorial21.03.2006. u 22:31 - pre 174 meseci
hajde burgos nemogu cekati vishe :) hocu nastavke sta je moguce FASTER :p!!
massk
 
Odgovor na temu

Lark
Draza Mihajlovic
Banja Luka

Član broj: 129370
Poruke: 27
*.teol.net.



Profil

icon Re: ADO u Delphi-ju - tutorial27.01.2007. u 19:07 - pre 163 meseci
stvarno ajd daj jos !!!
 
Odgovor na temu

priki

Član broj: 24732
Poruke: 697
212.103.132.*

ICQ: 174153511


+25 Profil

icon Re: ADO u Delphi-ju - tutorial09.05.2007. u 13:58 - pre 160 meseci
ADO je spor u Delphiju, bolje stavi tutorial za dbExpress
 
Odgovor na temu

RuleMaker
RuleMaker
Freelancer
Novi Sad

Član broj: 158531
Poruke: 23
*.eunet.yu.

Sajt: www.designfusion.co.cc


Profil

icon Re: ADO u Delphi-ju - tutorial18.01.2008. u 15:54 - pre 151 meseci
Polako sam počeo da kontam baze u delphiju, tj. access bazu i zapeo sam kod jedne stvari.
Kako da rešim ovo, npr ovo je moja baza

rec vrednost
xxxx yyyy
aaa bbb

I sada sam preko adotable1.Locate('rec',edit1.Text ,[]) video da u koloni 'rec' postoji ono što je vrednost edit1, ali mene zanima kako mogu da dođem do vrednosti polja koje odgovara nađenoj vrednosti za rec, na primer u edit1 upišem xxxx i sa prethodnom funkcijom će mi se samo dati znak da je nađen ali mene zanima kako da dođem do "yyyy"?
Nadam se da ste me razumeli.
Treba mi kao u MySQL-u kada pretražujem:
SELECT 'vrednost' WHERE rec=xxxx;
da li postoji tako nešto u delphiju?
 
Odgovor na temu

vurosevic

Član broj: 153514
Poruke: 5
212.5.210.*



Profil

icon Re: ADO u Delphi-ju - tutorial06.02.2008. u 12:58 - pre 151 meseci
Naravno.

Mozes da koristis ADOTable komponentu, tako sto ces pomocu Locate ili Lookup metoda pozicionirati kursor
na zeljenu poziciju, zatim da bi bio siguran da si pronasao zeljeni zapis (kod slucaja da zapis ne moze da se pronadje, cursor se pozicionira na kraj),
koristi metodu Found.
Kada si siguran da je zapis pronadjen, pomocu FieldByName('ime_polja') uzmes dacno ono sto ti treba.

----------------------------------------------------

drugi nacin, koji ja cesce koristim, je upotreba komponente ADOQuery.
moras prvo da specificiras SQL upit (primer: SQL.ADD('select sysdate from dual')) i nakon toga ga izvrsis (Active := True)

iz Dataset-a komponente uzmi isto pomocu FieldByName('ime_polja') ona polja koja su ti potrebna.

u slucaju je rezultat upita prazan, i Dataset bice prazan.

-----------------------------------------------------

Pozdrav,
Vladimir Urosevic
 
Odgovor na temu

miki78ns
Austria

Član broj: 161690
Poruke: 143
*.ptt.rs.



Profil

icon Re: ADO u Delphi-ju - tutorial24.05.2009. u 23:08 - pre 135 meseci
Neuspevam sa DBCombobox da mi se u drop down prikazuju sva polja u nekoj tabeli baze? Da li mi trebaju i komponente ADOConnection i ADOQuery ili je dovoljno Datasource i ADOTable komponenta?
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: ADO u Delphi-ju - tutorial25.05.2009. u 07:47 - pre 135 meseci
Ajde napiši dio koda di puniš combo.
F
 
Odgovor na temu

miki78ns
Austria

Član broj: 161690
Poruke: 143
*.ptt.rs.



Profil

icon Re: ADO u Delphi-ju - tutorial25.05.2009. u 21:52 - pre 135 meseci
Imam jedan primer gde to sve radi ali nije uradjen sa access bazom vec sa tom delphi DBDEMOS bazom, sve je podeseno u object inspector-u. Isto tako sam probao da uradim ali sa Access bazom ali tu komponentu DBCombobox neuspevam podesiti. Evo okacicu taj uradjen primer sa DBDEMOS bazom, pa ako neko ima slican primer ali sa Access bazom. Koristim Delphi 7.
Prikačeni fajlovi
 
Odgovor na temu

miki78ns
Austria

Član broj: 161690
Poruke: 143
*.ptt.rs.



Profil

icon Re: ADO u Delphi-ju - tutorial26.05.2009. u 21:34 - pre 135 meseci
Uspeo sam pomocu upustva sa http://www.dbforums.com/delphi...l-values-dbcombobox-items.html

DBComboBox1.Clear;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM tablename');
ADOQuery1.Open;
while not ADOQuery1.eof do
begin
DBComboBox1.items.add(ADOQuery1.FieldValues['column_of_the_item']);
ADOQuery1.next;
end;
DBComboBox1.ItemIndex := 0;
ADOQuery1.First;

Kad citam vrste sa DBNavigatorom iz DBGrid-a tada se u DBComboBox-u pojavljuje Drop Down (padajuca lista) a kada sa DBNavigatorom kliknem da dodam novu vrstu u DBGrid tada mi nema Drop Down u DBComboBox. DBComboBox sam podesio u Object Inspector - Events - OnDropDown - proceduru DBComboBox1Change koja sadrzi gore navedeni kod. Verovatno jos neki Events treba podesiti.

[Ovu poruku je menjao miki78ns dana 26.05.2009. u 23:13 GMT+1]
 
Odgovor na temu

Rode
Miodrag Krunić
Nezaposlen
Sokolac

Član broj: 211606
Poruke: 8
*.teol.net.



+1 Profil

icon Re: ADO u Delphi-ju - tutorial29.10.2014. u 12:29 - pre 69 meseci
Želim filtrirati iz ARHIVE (ADOTable) dvije godine (Npr 12 i 14) kako bih mogao prikazati zarade po mjesecima. Hvala!
Kruno_S
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2628



+69 Profil

icon Re: ADO u Delphi-ju - tutorial29.10.2014. u 12:36 - pre 69 meseci
Imaš primere u prethodnim postovima, najbolje je da napišeš odgovarajući SQL upit i pustiš samu bazu da filtrira podatke, alternativno možeš koristiti Filter, npr:

ADOTable1.Filter := '(PoljeGodina = 2012) or (PoljeGodina = 2014)';
ADOTable1.Filtered := True;
 
Odgovor na temu

Rode
Miodrag Krunić
Nezaposlen
Sokolac

Član broj: 211606
Poruke: 8
*.teol.net.



+1 Profil

icon Re: ADO u Delphi-ju - tutorial29.10.2014. u 12:42 - pre 69 meseci
Kralju Igore, hvala Vam !
Kruno_S
 
Odgovor na temu

motto cooltywator
Belgrade

Član broj: 64347
Poruke: 57
*.dynamic.isp.telekom.rs.



Profil

icon Re: ADO u Delphi-ju - tutorial28.10.2015. u 13:36 - pre 57 meseci
Pozdrav ljudi imam jedan mali problemcic

pokusavam da izvrsim query sa linkovanog servera

select * from [192.168.1.33].para.dbo.partneri i pokrenem kroz delphi javlja mi unspecifed error

a isti taj kveri samo sa imenom servera select * from server1.para.dbo.partneri sve radi dobro


Angelina Jolie
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2628



+69 Profil

icon Re: ADO u Delphi-ju - tutorial29.10.2015. u 01:40 - pre 57 meseci
> select * from [192.168.1.33].para.dbo.partneri i pokrenem kroz delphi javlja mi unspecifed error
> a isti taj kveri samo sa imenom servera select * from server1.para.dbo.partneri sve radi dobro

Nisam tako nesto ranije koristio, iz tvog primera, deluje da ne prihvata IP adresu vec naziv, mozda IP adresa treba da se navede u drugom formatu ili mozda nije ni podrzana.

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: ADO u Delphi-ju - tutorial
(TOP topic)

[ Pregleda: 20936 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

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