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

SQL upit

[es] :: Pascal / Delphi / Kylix :: SQL upit

[ Pregleda: 5413 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sole_boy

Član broj: 2486
Poruke: 58
*.ptt.yu



Profil

icon SQL upit24.02.2002. u 13:22 - pre 239 meseci
Postovanje,

poceo sam da radim neki program za cd klub
i imam sledece baze podataka:

1. Filmovi.db (Paradox)
2. Zanrovi.db (Paradox)

kreirao sam jedan datamodule gde su mi smestene sve baze podataka
e sada u Filmovi.db sam dodao jedan FLookUp na Zarnovi.db tj.
na naziv zanra u zanrovi.db tako da kada korisnik unosi nove filmove
u bazu samo selektuje zanr a ostalo unosi normalno!
Posto sam to zavrsio i sve radi kako treba. Hteo sam da uradim
pretragu diskova po zanru. Dodao sam u datamodule jedan Query
u koji sam smestio sva polja iz Filmovi.db
u SQL sam stavio: SELECT * FROM FILMOVI

napravio sam novu formu u kojoj sam stavio jedan DbLookUpComboBox koji pointuje
na sve zanrove znaci tu mi on izlista sve zanrove i to je OK
e sada meni treba jedan upit na koji ce kada ja selektujem recimo zanr AKCIJA
da izlista u GridBox sve filmove sa tim zanrom?

Zahvaljujem se unapred!
 
Odgovor na temu

Makojdis
Stefanovic Milos
Kragujevac

Član broj: 78
Poruke: 302
*.ptt.yu



Profil

icon Re: SQL upit24.02.2002. u 18:02 - pre 239 meseci
Upit izgleda ovako
Code:

select *
from filmovi
where zanr = :zanr

ovo :zanr je parametar

to upises u query>>strings
delphi 5 (predpostavljam da to koristis) ti sam generise parametar 'zanr'

onda pritiskom na dugme izvrsis ovo:
Code:

Query.Close;
Query.ParamByName('zanr').AsString:=combobox.text
Query.Open;
 
Odgovor na temu

Sole_boy

Član broj: 2486
Poruke: 58
*.ptt.yu



Profil

icon Re: SQL upit25.02.2002. u 08:53 - pre 239 meseci
Postovanje,

ovaj upit i code sto si mi napisao nazalost ne radi bas najbolje :(

a error je sledeci:

Query : parametar 'zanr' not found

mozda nisi razumeo pitanje, znaci imam dve baze podataka

filmovi.db | zanrovi.db
--------------------------
Rb Rb
Naziv Zanr
Zanr
G_glmc
- New field (zanr3-Lookup) na zanrovi.db(zanr)
--------------------------------------------------------------
meni treba kada korisnik hoce sve filmove po zanru (Akcija) npr.
da on izlista, mozda je sada malo jasnije!
 
Odgovor na temu

Sole_boy

Član broj: 2486
Poruke: 58
*.ptt.yu



Profil

icon Re: SQL upit25.02.2002. u 09:04 - pre 239 meseci
Zaboravih, a u query sam dodao sva polja iz filmovi.db
izuzev lookup-a
 
Odgovor na temu

Sole_boy

Član broj: 2486
Poruke: 58
*.ptt.yu



Profil

icon Re: SQL upit25.02.2002. u 09:59 - pre 239 meseci
Sredio sam :)

Code:

 dm.query.close;
       Dm.query.Sql.Clear;
       dm.query.Sql.Add ('select * from filmovi');
       dm.query.Sql.Add ('where Filmovi.zanr = "' +IntToStr(Dm.ZanrfRb.AsInteger)   
       +'"' + 'ORDER BY Naziv');
       dm.query.open;


E sada imam jos jedan problem, svaki clan cd kluba
treba da ima svoju malu bazu podataka, gde ce biti unoseni
podaci koje je diskove uzimao, kako to da odradim?
 
Odgovor na temu

overflow
Goran Milosavljević
Integration & Internet Senior
Engineer @ Telenor
Beograd

Član broj: 396
Poruke: 345
*.rcub.bg.ac.yu

ICQ: 106825659
Sajt: localhost


Profil

icon Re: SQL upit25.02.2002. u 11:00 - pre 239 meseci
Citat:
Sole_boy:
E sada imam jos jedan problem, svaki clan cd kluba
treba da ima svoju malu bazu podataka, gde ce biti unoseni
podaci koje je diskove uzimao, kako to da odradim?


Napravi novu tabelu u sklopu te tvoje baze u okviru koje ces unositi podatke kad god se iznajmi neki CD, i to:

red.br
sifra/imeclana
sifradiska
datumnajma
datumvracanja (koji punis tek posto korisnik vrati cd)
zarada (koju izracunavas na osnovu neke fiksne cene*broj dana)

Kasnije odgovarajucim SQL upitima vracas sve diskove koje je iznajmio jedan korisnik i sl.


Mada, mozes i za svakog korisnika da kreiras tabelu u okviru koje ces unositi koje diskove je iznajmio ....

Sve sto je besmislenije, utoliko je bolje.
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
*.mol.com.mk

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: SQL upit26.02.2002. u 01:52 - pre 239 meseci
dobro bi ti doslo malo vise znanja o relacionih bazama.
To sto ti trazis bi se uradilo od prilike ovako:
prvo:
tabela za clanove sa sledece podatke (clan) :

clan_ID,
ime,
prezime,
adresa,
.. i tako dalje

vtoro:
baza za uzetih filmova (uzeti_filmovi):

clan_ID,
film_ID,
data,
... i jos sta ti treba

trece:
baza filmova (filmovi) :

film_ID
naslov,
zanr,
glumac,
.....

e sad tri tabele spojis, to se u SQL zove join, da ti ne objasnjavam joinove i tako dalje, evo ti mali SQL code koji vraca samo imena uzetih filmova za odredzenog clana, i data kad je film uzet:

SELECT clan.ime,clan.prezime,uzeti_filmovi.data,filmovi.naslov FROM
clan,filmovi,uzeti_filmovi WHERE (clan.clan_ID=uzeti_filmovi.clan_ID) AND
(uzeti_filmovi.film_ID=filmovi.film_ID)

kad se ovaj upit izvrsi onda dobijes ovakav recorset:

Igor Stojanovic RamboIII 22.02.2001
Igor Stojanovic Karate Kid 22.02.2001
Petar Stanojevic RamboIII 12.01.2002


ako hoces da recordset vraca samo podatke za odredjenog clana onda postavis jos jedan uslov: clan_ID=broj_clana_kog_trazis

primer, ako trazis sve uzete filmove za clan broj 34 onda bi to izgledalo ovako

SELECT clan.ime,clan.prezime,uzeti_filmovi.data,filmovi.naslov FROM
clan,filmovi,uzeti_filmovi WHERE (clan.clan_ID=uzeti_filmovi.clan_ID) AND
(uzeti_filmovi.film_ID=filmovi.film_ID) AND (clan.clan_ID=34)

za ovo da da se izvrsava vecom brzinom VAZNO je indeksirati tabele
tabela clanove bi imala primary key (clan_ID)
tabela uzetih filmova bi imala primary key (clan_ID,film_ID)
tabela filmova bi imala primary key (film_ID)

RDBMS su mnogo velika tema da bi se tek tako objasnilo sve ovo .....

keep hope alive



People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

Makojdis
Stefanovic Milos
Kragujevac

Član broj: 78
Poruke: 302
*.ptt.yu



Profil

icon Re: SQL upit26.02.2002. u 07:13 - pre 239 meseci
Citat:
Sole_boy:
Postovanje,

ovaj upit i code sto si mi napisao nazalost ne radi bas najbolje :(

a error je sledeci:

Query : parametar 'zanr' not found

mozda nisi razumeo pitanje, znaci imam dve baze podataka




Ovaj kod 100% radi
moras da napises ovako ... = :zanr ... dve tacke moraju da budu uz zanr(:zanr)
a ne =: zanr sto naravno ne radi
 
Odgovor na temu

Sole_boy

Član broj: 2486
Poruke: 58
*.ptt.yu



Profil

icon Re: SQL upit26.02.2002. u 09:12 - pre 239 meseci
Riste Pejov:
Hvala na odgovorima, pokusacu da uradim tako kako si rekao

Makojdis:
Probacu jos jednom da uradim ali sada nije ni vazno to sam sredio, u svakom slucaju hvala.

Nov problem :)
Dakle na onoj formu gde radim pretragu diskova po zanrovima imam DbLookUpComboBox ili kako se vec zove :) on je linkovan sa zanrovi.db
polje naziv_zanra i to sve radi OK. A problem je sledeci
kada radim pretragu recimo na AKCIJE on meni izlista sve AKCIJE i kada zatvorim formu i odem na formu za azuriranje filmova meni je prvi film AKCIJA a bio je recimo KOMEDIJA? Nadam se da sam bio jasan
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
212.110.78.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: SQL upit26.02.2002. u 14:07 - pre 239 meseci
Po meni, sve te DB aware kontrole ubrzavaju rad, ali ipak kao sto vidis
nemas totalnu kontrolu.
Ja licno praktikujem da koriscenje standardnih ( non DB aware ) kontrola
i normalno prezentiras ono sta zelis i kako zelis uz nekoliko SQL upita.

Ja bih ovo sa komboa uradio ovako:

prvo uzmi imena svih filmova, onda na query komponentu postavljaj
filter za svaki zanr, a redni broj filma (ono sto sam nazvao film_ID), skladiras u
neki TStringList i kad je film izbran onda iz liste izbacis film_ID i ubacujes red
za uzetog filma u tabelu.

Pozdrav
People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: SQL upit

[ Pregleda: 5413 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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