🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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]
#62
Author: Maciej "MACiAS" Pilichowski
Date: Tue, 30 Mar 1999 08:06
20 lines
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]
#63
Author: Tomasz Rubaj
Date: Tue, 30 Mar 1999 08:29
33 lines
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]
#66
Author: Maciej Denisiuk
Date: Tue, 30 Mar 1999 09:38
18 lines
1284 bytes
Mo¿e zagnie¿d¿one zapytanie SQL:
select * from tabela1
where pole1 in 
    (select * from tabela2 where pole2=TRUE)

-- 
 Przyjemnoœci
 Maciej Denisiuk

Maciej "MACiAS" Pilichowski napisa³(a) w wiadomoœci: <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]
#64
Author: Maciej "MACiAS" Pilichowski
Date: Wed, 31 Mar 1999 08:21
31 lines
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]
#67
Author: Maciej "MACiAS" Pilichowski
Date: Wed, 31 Mar 1999 08:21
18 lines
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]
#65
Author: Tomasz Rubaj
Date: Wed, 31 Mar 1999 09:09
29 lines
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]
#68
Author: Kasar Soft
Date: Thu, 01 Apr 1999 02:16
17 lines
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]
#69
Author: Kasar Soft
Date: Thu, 01 Apr 1999 02:33
20 lines
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