[MSSQL] dynamiczne tworzenie zapytania w funkcji
Sowiecki Agent - 17-06-2007 00:18
[MSSQL] dynamiczne tworzenie zapytania w funkcji
Witam! W zale?no?ci od pewnej zmiennej zapytanie do bazy wyglada nieco inaczej, a dokladniej zmienia sie nazwa kolumny (nie warosci w kolumnie). I teraz mam pytanie czy istnieje mozliwosc sklejenia zapytania tak bym mogl w miejsce kolumny wstawic zmienna?
np select @wartosc = @zmienna from tabela, gdzie @zmienna to nazwa pola?
Takie cos oczywiscie nie przejdzie ale czy da sie to zapisac tak by przeszlo.
-- PODPISZ PROJEKT POSZERZAJ?CY ABSURDALNE WARUNKI OBRONY KONIECZNEJ!! Prawo ma byc dla zwyk?ychludzi, nie dla libera?ów chc?cych chronic przestepców! http://www.zbigniewziobro.org/content/view/19/30/
Piotr Drewnik - 17-06-2007 00:18
"Sowiecki Agent" <przemyslaw.rokicki.tnij@tnijtnijkochanietnij.gaze ta.pl> wrote in message news:f4e7o8$21b$1@inews.gazeta.pl...
> W zale?no?ci od pewnej zmiennej zapytanie do bazy wyglada nieco inaczej, a > dokladniej zmienia sie nazwa kolumny (nie warosci w kolumnie). I teraz mam > pytanie czy istnieje mozliwosc sklejenia zapytania tak bym mogl w miejsce > kolumny wstawic zmienna? > > np > select @wartosc = @zmienna from tabela, gdzie @zmienna to nazwa pola?
By?o niedalej ni? tydzie? temu - EXEC
-- pozdrawiam piotr.drewnik
Sowiecki Agent - 17-06-2007 00:18
Piotr Drewnik napisa?(a): > "Sowiecki Agent" <przemyslaw.rokicki.tnij@tnijtnijkochanietnij.gaze ta.pl> > wrote in message news:f4e7o8$21b$1@inews.gazeta.pl... > >> W zale?no?ci od pewnej zmiennej zapytanie do bazy wyglada nieco inaczej, a >> dokladniej zmienia sie nazwa kolumny (nie warosci w kolumnie). I teraz mam >> pytanie czy istnieje mozliwosc sklejenia zapytania tak bym mogl w miejsce >> kolumny wstawic zmienna? >> >> np >> select @wartosc = @zmienna from tabela, gdzie @zmienna to nazwa pola? > > > By?o niedalej ni? tydzie? temu - EXEC >
ok znalzlem, dzieki, a powiedz czym jest 'SQL Injection' bo widze ze o tym wspomniales w tym watku
-- >> PODPISZ PROJEKT POSZERZAJ?CY ABSURDALNE WARUNKI OBRONY KONIECZNEJ!! << Prawo ma byc dla zwyk?ychludzi, nie dla libera?ów chc?cych chronic przestepców! http://www.zbigniewziobro.org/content/view/19/30/
Grzegorz Danowski - 17-06-2007 00:18
"Sowiecki Agent" <przemyslaw.rokicki.tnij@tnijtnijkochanietnij.gaze ta.pl> wrote in message news:f4ebbk$eam$1@inews.gazeta.pl... >>> W zale?no?ci od pewnej zmiennej zapytanie do bazy wyglada nieco inaczej, >>> a dokladniej zmienia sie nazwa kolumny (nie warosci w kolumnie). I teraz >>> mam pytanie czy istnieje mozliwosc sklejenia zapytania tak bym mogl w >>> miejsce kolumny wstawic zmienna? >>> >>> np >>> select @wartosc = @zmienna from tabela, gdzie @zmienna to nazwa pola? >> >> >> By?o niedalej ni? tydzie? temu - EXEC >> > > ok znalzlem, dzieki, a powiedz czym jest 'SQL Injection' bo widze ze o tym > wspomniales w tym watku
Np. zak?adaj?c, ?e masz tabel? z dwoma kolumnami: "nazwisko" i "imi?", teraz oczekujesz, ?e user poda nazw? kolumny, z której chce pobra? dane. Dopóki user b?dzie grzeczny i b?dzie wpisywa? obie warto?ci, to wszystko b?dzie ok, np. po wpisaniu "nazwisko", twoja funkcja wykona selekt: select @wartosc = nazwisko from tabela Je?li jednak user b?dzie chcia? troch? si? zabawi?, to mo?e wpisa?: "''; Drop Table tabela--" co b?dzie skutkowa?o poleceniem: select @wartosc = ''; Drop Table tabela --- from tabela
Domy?l si? czym si? to sko?czy :-). Aby zapobiec SQL Injection musisz walidowa? to co wpisuje u?ytkownik. -- Pozdrawiam Grzegorz
chylek.marcin@gmail.com - 17-06-2007 00:18
Oprocz walidacji musisz rowniez kazda taka wartosc traktowac jako stringa, w przypadku nazwy tabeli to tak jak przedmowca pisal. Jest wiele art na ten temat.
Grzegorz Danowski - 17-06-2007 00:18
<chylek.marcin@gmail.com> wrote in message news:1181460315.840621.119450@w5g2000hsg.googlegro ups.com... > > Oprocz walidacji musisz rowniez kazda taka wartosc traktowac jako > stringa, w przypadku nazwy tabeli to tak jak przedmowca pisal. Jest > wiele art na ten temat.
Co masz na my?li pisz?c o traktowaniu wszystkich warto?ci jako stringa w kontek?cie dynamicznego SQL-a? -- Pozdrawiam Grzegorz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
[sql][pgsql] zapytanie sql
zanotowane.pldoc.pisz.plpdf.pisz.plmelooonka.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|