Thread View: pl.comp.lang.delphi.bazy-danych
8 messages
8 total messages
Started by Maciej "MACiAS" Pilichowski
Tue, 30 Mar 1999 08:06
Pozbycie sie podwojnego filtrowania [SQL]
Author: Maciej "MACiAS" Pilichowski
Date: Tue, 30 Mar 1999 08:06
Date: Tue, 30 Mar 1999 08:06
20 lines
1387 bytes
1387 bytes
Hej,
Mam baze, ktora chce odfiltrowac przy pomocy jednego warunku. Ale
tez chcialbym w innym miejscu odfiltrowac ja przy pomocy dwoch
warunkow, z ktorych jeden jest taki jak wczesniej.
Sadze, ze nie da sie w SQL wstawic czegos takiego:
SELECT * FROM Query1 WHERE...
Gdzie Query1 to wlasnie wynik odfiltrowania nr 1. Ale o ile sie nie
myle takie redundantne filtrowanie spowalnia program. Jak wiec to
ominac?
milego dnia zycze
hej
--
Maciej "MACiAS" Pilichowski http://www.torun.pdi.net/~macias/
nowe klamoty w marcu: pieniadze publiczne, W I R U S Happy99
S P R Z E D A M : oryginalne gry HalfLife i Thief, streamer Jumbo250,
lornetke z zoomem, segment CD Technics, przeciwsloneczne okulary sportowe
Re: Pozbycie sie podwojnego filtrowania [SQL]
Author: Tomasz Rubaj
Date: Tue, 30 Mar 1999 08:29
Date: Tue, 30 Mar 1999 08:29
33 lines
1869 bytes
1869 bytes
Maciej MACiAS Pilichowski wrote: > > Hej, > > Mam baze, ktora chce odfiltrowac przy pomocy jednego warunku. Ale > tez chcialbym w innym miejscu odfiltrowac ja przy pomocy dwoch > warunkow, z ktorych jeden jest taki jak wczesniej. > Sadze, ze nie da sie w SQL wstawic czegos takiego: > > SELECT * FROM Query1 WHERE... > > Gdzie Query1 to wlasnie wynik odfiltrowania nr 1. Ale o ile sie nie > myle takie redundantne filtrowanie spowalnia program. Jak wiec to > ominac? 1.Wydaje sie ze wystarczy uruchomic drugi raz sqla z dolozonym warunkiem SELECT * FROM Query1 WHERE... warunek_poprzedni AND warunek_nowy Wydajnosc (przynajmniej paradoxa) powinna wystarczyc w wiekszosci zastosowan. Dla wiekszych tablic i w miare prostych selectow. 2. Query1.Filter:='Pole>''1'''; Query1.Filtered:=true; albo zdarzenia OnFilterRecord. Mysle ze bedzie szybkie dla tablic rzedu do 1000 rekordow. Nie testowalem dokladnie. 3. Uzyj batchmove z query1 do tablicy tymczasowej. I z niej kolejny select. To przy bardziej skomplikowanych selectach (np z wielu tablic). Albo dla naprawde duzych tablic i duzego ich odfiltrowania w pierwszym warunku. TRubaj
Re: Pozbycie sie podwojnego filtrowania [SQL]
Author: Maciej Denisiuk
Date: Tue, 30 Mar 1999 09:38
Date: Tue, 30 Mar 1999 09:38
18 lines
1284 bytes
1284 bytes
Mo¿e zagnie¿d¿one zapytanie SQL:
select * from tabela1
where pole1 in
(select * from tabela2 where pole2=TRUE)
--
Przyjemnoci
Maciej Denisiuk
Maciej "MACiAS" Pilichowski napisa³(a) w wiadomoci: <36fff274.30436563@rymunda.torun.pdi.net>...
|Hej,
|
|SELECT * FROM Query1 WHERE...
|
|Gdzie Query1 to wlasnie wynik odfiltrowania nr 1. Ale o ile sie nie
|myle takie redundantne filtrowanie spowalnia program. Jak wiec to
|ominac?
|
Re: Pozbycie sie podwojnego filtrowania [SQL]
Author: Maciej "MACiAS" Pilichowski
Date: Wed, 31 Mar 1999 08:21
Date: Wed, 31 Mar 1999 08:21
31 lines
1879 bytes
1879 bytes
Hej,
>1.Wydaje sie ze wystarczy uruchomic drugi raz sqla z dolozonym warunkiem
> SELECT * FROM Query1 WHERE... warunek_poprzedni AND warunek_nowy
>Wydajnosc (przynajmniej paradoxa) powinna wystarczyc w wiekszosci
>zastosowan.
Hmm, trzymam Cie za slowo ;-))) ale tak czy inaczej z mila checia
dowiedzialbym sie o filtrowanie SELECTem juz czegos przefiltrowanego.
Po prostu nie lubie jak widze w moim programie dwa razy te sama
robote.
>Dla wiekszych tablic i w miare prostych selectow.
>2.
> Query1.Filter:='Pole>''1''';
> Query1.Filtered:=true;
> albo zdarzenia OnFilterRecord.
>Mysle ze bedzie szybkie dla tablic rzedu do 1000 rekordow. Nie
>testowalem dokladnie.
To bedzie dzialalo tylko dla warunkow statycznych. A mi chodzi o
dynamiczne.
milego dnia zycze
hej
--
Maciej "MACiAS" Pilichowski http://www.torun.pdi.net/~macias/
nowe klamoty w marcu: pieniadze publiczne, W I R U S Happy99
S P R Z E D A M : oryginalne gry HalfLife i Thief, streamer Jumbo250,
lornetke z zoomem, segment CD Technics, przeciwsloneczne okulary sportowe
Re: Pozbycie sie podwojnego filtrowania [SQL]
Author: Maciej "MACiAS" Pilichowski
Date: Wed, 31 Mar 1999 08:21
Date: Wed, 31 Mar 1999 08:21
18 lines
1347 bytes
1347 bytes
Hej,
>Może zagnieżdżone zapytanie SQL:
>select * from tabela1
>where pole1 in
> (select * from tabela2 where pole2=TRUE)
No dobrze, ale tak czy inaczej stworza sie query1 i query2, w tym
drugim jeden z warunkow bedzie sie powtarzal.
milego dnia zycze
hej
--
Maciej "MACiAS" Pilichowski http://www.torun.pdi.net/~macias/
nowe klamoty w marcu: pieniadze publiczne, W I R U S Happy99
S P R Z E D A M : oryginalne gry HalfLife i Thief, streamer Jumbo250,
lornetke z zoomem, segment CD Technics, przeciwsloneczne okulary sportowe
Re: Pozbycie sie podwojnego filtrowania [SQL]
Author: Tomasz Rubaj
Date: Wed, 31 Mar 1999 09:09
Date: Wed, 31 Mar 1999 09:09
29 lines
1649 bytes
1649 bytes
Maciej MACiAS Pilichowski wrote: [..] > >Wydajnosc (przynajmniej paradoxa) powinna wystarczyc w wiekszosci > >zastosowan. > > Hmm, trzymam Cie za slowo ;-))) ale tak czy inaczej z mila checia > dowiedzialbym sie o filtrowanie SELECTem juz czegos przefiltrowanego. > > Po prostu nie lubie jak widze w moim programie dwa razy te sama > robote. Zajrzyj na p.c.l.d. Napisalem tam post o wydajnosci sql w bazach paradoxa. Bylem zdziwiony wydajnoscia :). > >Dla wiekszych tablic i w miare prostych selectow. > >2. > > Query1.Filter:='Pole>''1'''; > > Query1.Filtered:=true; > > albo zdarzenia OnFilterRecord. [..] > To bedzie dzialalo tylko dla warunkow statycznych. A mi chodzi o > dynamiczne. > ? Nie bardzo wiem o co Ci chodzi w warunkach dynamicznych. Moze o zaleznosc od wartosci jakiejs zmiennej... W kazdym razie przy uzyciu OnFilterRecord mozesz zrobic raczej duzo. TRubaj
Re: Pozbycie sie podwojnego filtrowania [SQL]
Author: Kasar Soft
Date: Thu, 01 Apr 1999 02:16
Date: Thu, 01 Apr 1999 02:16
17 lines
1145 bytes
1145 bytes
Maciej Denisiuk napisał(a) w wiadomości: <7dq667$iv3$2@newsfeed.onet.pl>...
Może zagnieżdżone zapytanie SQL:
select * from tabela1
where pole1 in
(select * from tabela2 where pole2=TRUE)
Zagniezdzone zapytanie na Paradox'ie to morderstwo wydajnosci
moze lepiej tak jak juz bylo kiedys omawiane
DBISaveChanges...
a potem wybieranie z nowo powstalej tablicy
przy serwerze SQL STOREDPROC lub VIEW
J.C.
Re: Pozbycie sie podwojnego filtrowania [SQL]
Author: Kasar Soft
Date: Thu, 01 Apr 1999 02:33
Date: Thu, 01 Apr 1999 02:33
20 lines
1060 bytes
1060 bytes
>DBISaveChanges... ooooppppsss wyrwalo mi sie zupelnie nie na temat powinno byc procedure MakePermTable(Qry : TQuery; PermTableName : String); begin if not Qry.Prepared then Qry.Prepare; Check(DbiMakePermanent(Qry.Handle, PChar(PermTableName), True)); end; Pozdrawiam J.C.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads