W większości baz dynamiczny SQL to taki:
1)
'select a, b, c
from tabela
where a = '||zmienna_a||' or b>'||zmienna_b
A statyczny:
2)
select a, b, c
from tabela
where a = :p_a or b> :p_b
Potem definiuje się zmienne p_a i p_b oraz podstawia do nich wartości, następnie
wykonuje zapytanie.
W bazach, które potrafią obsługiwać tzw. bind variables parsowanie zapytania w
przypadku 2) wykonywane jest raz, a przy kolejnych wykonaniach (o ile treść
zapytania się nie zmieni) podstawiane są tylko wartości zmiennych.
--
Sławomir Szyszło mailto:slas...@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?group=pl.comp.bazy-danych
czyli jest to SQL embeded ?
czyli jest to SQL typu embeded
Co to za dynamika? ot zwykłe podstawienie zmiennych, imo dynamiczny to:
"select id,nazwa,"+zmienna+" from tabela where "+zmienna2+" and "+zmienna3+" order by "+po_czym
>> W bazach, które potrafią obsługiwać tzw. bind variables parsowanie zapytania w
>> przypadku 2) wykonywane jest raz, a przy kolejnych wykonaniach (o ile treść
>> zapytania się nie zmieni) podstawiane są tylko wartości zmiennych.
> czyli jest to SQL embeded ?
a embeded sql to się nazywa gdy engine bazy ładuje się w program jako dll czy
lib (np. sqlite), a nie łączy do odrębnego serwera sql.
--
*** rozanski.at.sergiusz.dot.com sq3bkn ***
*** http://www.4x4.kalisz.pl ***
$ You have new spam in /home/serek/maildir/
>>> W większości baz dynamiczny SQL to taki:
>>>
>>> 1)
>>> 'select a, b, c
>>> from tabela
>>> where a = '||zmienna_a||' or b>'||zmienna_b
>>>
>>> A statyczny:
>>>
>>> 2)
>>> select a, b, c
>>> from tabela
>>> where a = :p_a or b> :p_b
>>>
>>> Potem definiuje się zmienne p_a i p_b oraz podstawia do nich wartości, następnie
>>> wykonuje zapytanie.
>
> Co to za dynamika? ot zwykłe podstawienie zmiennych, imo dynamiczny to:
>
> "select id,nazwa,"+zmienna+" from tabela where "+zmienna2+" and "+zmienna3+" order by "+po_czym
W dynamicznym można "sklejać" dowolne części zapytania, również klauzulę
select czy nazwy tabel - w moim przykładzie podałem tylko wartości zmiennych.
>
>>> W bazach, które potrafią obsługiwać tzw. bind variables parsowanie zapytania w
>>> przypadku 2) wykonywane jest raz, a przy kolejnych wykonaniach (o ile treść
>>> zapytania się nie zmieni) podstawiane są tylko wartości zmiennych.
>
>> czyli jest to SQL embeded ?
>
> a embeded sql to się nazywa gdy engine bazy ładuje się w program jako dll czy
> lib (np. sqlite), a nie łączy do odrębnego serwera sql.
To nie tak. Opis można znaleźć tu: http://pl.wikipedia.org/wiki/SQL#Formy_SQL-a
--
Sławomir Szyszło mailto:slas...@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych