=?iso-8859-2?q?Nazwa_Tabeli_jako_parametr_w_procedurze_sk=B3a dowanej?=
_nabuchodonozor - 24-01-2007 00:02
=?iso-8859-2?q?Nazwa_Tabeli_jako_parametr_w_procedurze_sk=B3a dowanej?=
Witam,
Napisalem nastepujaca procedure:
CREATE procedure WybierzTabele @nazwa nvarchar(30) as select * from [@nazwa]
Procedura zostala zapamietana ale przy execu wyskakuje blad: Server: Msg 208, Level 16, State 1, Procedure WybierzTabele, Line 4 Invalid object name '@nazwa'.
No i pytanie czy jest w ogole mozliwe przekazywanie nazwy tabeli do parametru?? Prosze o wszelkie sugestie moze jest inny sposob niz pisanie procedury??
Pozdro
Grzegorz Danowski - 25-01-2007 00:01
=?iso-8859-2?Q?Re:_Nazwa_Tabeli_jako_parametr_w_procedurze_sk =B3adowanej?=
"_nabuchodonozor" <kkocemba@wsb-nlu.edu.pl> wrote in message news:1169593262.473144.190120@m58g2000cwm.googlegr oups.com... .... > No i pytanie czy jest w ogole mozliwe przekazywanie nazwy tabeli do > parametru?? Prosze o wszelkie sugestie moze jest inny sposob niz > pisanie procedury??
Trzeba dynamicznie tworzyć zapytanie sql, czyli coś w stylu: CREATE procedure WybierzTabele @nazwa nvarchar(30) as Exec ('select * from ' + @nazwa) Go
-- Pozdrawiam Grzegorz
_nabuchodonozor - 26-01-2007 00:03
=?iso-8859-2?q?Re:_Nazwa_Tabeli_jako_parametr_w_procedurze_sk =B3adowanej?= Witam ponownie,
Dzieki za ostatnia pomoc:) bardzo sie przydala:) ale teraz mam podobny problem: Otoz mam nastepujaca procedurke:
CREATE procedure SprawdzMiejsce @nazwa nvarchar(50), @miejsce int output as set @miejsce = (select Zajetemiejsca from [@nazwa] )
No i nie bardzo wiem jak moge to osiagnac. Probowalem tez w ten sposob:
set @miejsce = exec ('select Zajetemiejsca from ' +@nazwa)
ale wyskakuje blad: Server: Msg 156, Level 15, State 1, Procedure SprawdzMiejsce, Line 5 Incorrect syntax near the keyword 'exec'.
Nie bardzo umiem poslugiwac sie dynamicznymi zapytaniami bede wdzieczny za pomoc i chetnie poczytalbym o takich zapytaniach wiecej ale nie bardzo wiem gdzie moze ktos zna jakas dobra ksiazke lub link:)
pozdro
Grzegorz Danowski - 26-01-2007 00:03
=?iso-8859-2?Q?Re:_Nazwa_Tabeli_jako_parametr_w_procedurze_sk =B3adowanej?=
"_nabuchodonozor" <kkocemba@wsb-nlu.edu.pl> wrote in message news:1169697647.473303.139770@a75g2000cwd.googlegr oups.com... > Dzieki za ostatnia pomoc:) bardzo sie przydala:) ale teraz mam podobny > problem: > Otoz mam nastepujaca procedurke: > > CREATE procedure SprawdzMiejsce > @nazwa nvarchar(50), > @miejsce int output > as > set @miejsce = (select Zajetemiejsca from [@nazwa] ) > > No i nie bardzo wiem jak moge to osiagnac. Probowalem tez w ten sposob: > > set @miejsce = exec ('select Zajetemiejsca from ' +@nazwa) >
Mam wrażenie, że przekombinowujesz i trzymasz w osobnych tabelach to co winneś trzymać w jednej wzbogaconej o dodatkową kolumną z atrybutem, który aktualnie określa nazwę tabeli. -- Pozdrawiam Grzegorz
_nabuchodonozor - 26-01-2007 00:03
=?iso-8859-2?q?Re:_Nazwa_Tabeli_jako_parametr_w_procedurze_sk =B3adowanej?=
Mam takie troche male komplikacje w projekcie:P Dotyczy on kina. Mam tabele Filmy a w niej tytulFilmu. Gdy uzytkownik doda jakis film do bazy automatycznie tworzona jest tabela o nazwie podanej w tytulFilmu. Potrzebne mi to jest do tego aby w tych nowych tabelach przechowywac informacje odnosnie aktualnie zajetych krzeselek(ktorych jest 105) i ceny biletu ktora przypada na dane krzeselko. Przedstawiam to formie przyciskow i jesli uzytkownik kliknie na dane "krzeselko" jest ono zapisywane do bazy jako zajete. Pozniej chce tylko w petli w programie sprawdzic ktore miejsca sa zajete i narysowac aktualna sytuacje z miejscami na dokladny film. Nie wiem jak teraz mam wyciagnac int(w sumie to chyba tablice tych intow) z tabeli o niewiadomej nazwie przed wykonaniem procedury. Nie umialem tego przedstawic w jednej tabeli bo tak byloby znacznie wygodniej.
Grzegorz Danowski - 26-01-2007 00:03
=?iso-8859-2?Q?Re:_Nazwa_Tabeli_jako_parametr_w_procedurze_sk =B3adowanej?=
"_nabuchodonozor" <kkocemba@wsb-nlu.edu.pl> wrote in message news:1169766658.512537.144040@s48g2000cws.googlegr oups.com... > Mam takie troche male komplikacje w projekcie:P Dotyczy on kina. Mam > tabele Filmy a w niej tytulFilmu. Gdy uzytkownik doda jakis film do > bazy automatycznie tworzona jest tabela o nazwie podanej w tytulFilmu.
To teraz powiedz, co się stanie jak ktoś nagra film pod tytułem "Filmy".
.... > zapisywane do bazy jako zajete. Pozniej chce tylko w petli w programie > sprawdzic ktore miejsca sa zajete i narysowac aktualna sytuacje z > miejscami na dokladny film. Nie wiem jak teraz mam wyciagnac int(w > sumie to chyba tablice tych intow) z tabeli o niewiadomej nazwie przed > wykonaniem procedury. Nie umialem tego przedstawic w jednej tabeli bo > tak byloby znacznie wygodniej.
Eeetam, czy wykonanie prostego selekta z nazwą filmu w Where jest trudniejsze? I jeśli tak jest rzeczywiście, to jest to niezgodnie z regułami sztuki (normalizacją). -- Pozdrawiam Grzegorz
krizor - 30-01-2007 00:01
> "_nabuchodonozor" <kkocemba@wsb-nlu.edu.pl> wrote in message > news:1169697647.473303.139770@a75g2000cwd.googlegr oups.com... > > Dzieki za ostatnia pomoc:) bardzo sie przydala:) ale teraz mam podobny > > problem: > > Otoz mam nastepujaca procedurke: > > > > CREATE procedure SprawdzMiejsce > > @nazwa nvarchar(50), > > @miejsce int output > > as > > set @miejsce = (select Zajetemiejsca from [@nazwa] ) > > > > No i nie bardzo wiem jak moge to osiagnac. Probowalem tez w ten sposob: > > > > set @miejsce = exec ('select Zajetemiejsca from ' +@nazwa) > > > > Mam wrażenie, że przekombinowujesz i trzymasz w osobnych tabelach to co > winneś trzymać w jednej wzbogaconej o dodatkową kolumną z atrybutem, który > aktualnie określa nazwę tabeli. > -- > Pozdrawiam > Grzegorz > a moze tak : EXECUTE IMMEDIATE :) tzw.: dynamiczny sql
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Grzegorz Danowski - 30-01-2007 00:02
=?iso-8859-2?Q?Re:_Nazwa_Tabeli_jako_parametr_w_procedurze_sk =B3adowanej?=
"krizor" <krozycki@op.pl> wrote in message news:62c7.000000d3.45be56c0@newsgate.onet.pl... >> > Dzieki za ostatnia pomoc:) bardzo sie przydala:) ale teraz mam podobny >> > problem: >> > Otoz mam nastepujaca procedurke: >> > >> > CREATE procedure SprawdzMiejsce >> > @nazwa nvarchar(50), >> > @miejsce int output >> > as >> > set @miejsce = (select Zajetemiejsca from [@nazwa] ) >> > >> > No i nie bardzo wiem jak moge to osiagnac. Probowalem tez w ten sposob: >> > >> > set @miejsce = exec ('select Zajetemiejsca from ' +@nazwa) >> > .... > a moze tak : EXECUTE IMMEDIATE :) tzw.: dynamiczny sql
Najwyraźniej masz inną szklaną kulę i ta Twoja wskazuje na Oracle? (ja obstawiałem, że pytacz ma problem ze SQL Serverem :). Grzegorz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
=?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?=
=?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?=
=?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?=
=?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.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 |
|