• 19 odgovora
  • 27.240 pregleda
ADO u Delphi-ju - tutorial 18.06.2004. u 19:45 · pre 272 meseci #1
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...
Re: ADO u Delphi-ju - tutorial 19.06.2004. u 17:05 · pre 272 meseci #2
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...
Re: ADO u Delphi-ju - tutorial 22.06.2004. u 12:59 · pre 271 meseci #3
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

Re: ADO u Delphi-ju - tutorial 02.07.2004. u 19:35 · pre 271 meseci #4
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!

Re: ADO u Delphi-ju - tutorial 31.10.2005. u 13:50 · pre 255 meseci #5
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]
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: ADO u Delphi-ju - tutorial 20.01.2006. u 00:20 · pre 252 meseci #6
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]
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: ADO u Delphi-ju - tutorial 21.03.2006. u 22:31 · pre 250 meseci #7
hajde burgos nemogu cekati vishe :) hocu nastavke sta je moguce FASTER :p!!
Potpis
massk
Re: ADO u Delphi-ju - tutorial 09.05.2007. u 13:58 · pre 236 meseci #9
ADO je spor u Delphiju, bolje stavi tutorial za dbExpress
Re: ADO u Delphi-ju - tutorial 18.01.2008. u 15:54 · pre 228 meseci #10
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?
Re: ADO u Delphi-ju - tutorial 06.02.2008. u 12:58 · pre 227 meseci #11
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
Re: ADO u Delphi-ju - tutorial 24.05.2009. u 23:08 · pre 212 meseci #12
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?
Re: ADO u Delphi-ju - tutorial 25.05.2009. u 21:52 · pre 211 meseci #14
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.
Re: ADO u Delphi-ju - tutorial 26.05.2009. u 21:34 · pre 211 meseci #15
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]
Re: ADO u Delphi-ju - tutorial 29.10.2014. u 12:29 · pre 145 meseci #16
Želim filtrirati iz ARHIVE (ADOTable) dvije godine (Npr 12 i 14) kako bih mogao prikazati zarade po mjesecima. Hvala!
Potpis
Kruno_S
Re: ADO u Delphi-ju - tutorial 29.10.2014. u 12:36 · pre 145 meseci #17
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;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: ADO u Delphi-ju - tutorial 29.10.2014. u 12:42 · pre 145 meseci #18
Kralju Igore, hvala Vam !
Potpis
Kruno_S
Re: ADO u Delphi-ju - tutorial 28.10.2015. u 13:36 · pre 133 meseci #19
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

Potpis
Angelina Jolie
Re: ADO u Delphi-ju - tutorial 29.10.2015. u 01:40 · pre 133 meseci #20
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme