[MSSQL2005]
[MSSQL2005]2008-01-24 17:11:26 | autor: rorkWitam,
wykonując zapytanie typu SELECT * FROM ... FOR UPDATE dostaję komunikat: FOR UPDATE clause allowed only for DECLARE CURSOR czy któryś z szanownych grupowiczów/grupowiczek orientuje się jak poradzić sobie z tym problemem? używam drivera: Microsoft SQL Server 2005 JDBC Driver 1.2 pozdr rork Re: [MSSQL2005]2008-01-24 21:20:54 | autor: Borafurork pisze:
> Witam, > > wykonując zapytanie typu SELECT * FROM ... FOR UPDATE dostaję komunikat: > FOR UPDATE clause allowed only for DECLARE CURSOR > > czy któryś z szanownych grupowiczów/grupowiczek orientuje się jak > poradzić sobie z tym problemem? Ale z jakim problemem? Bo wróżka ma dziś wolne, komunikat jest jasny, tylko nie wiem co Ty tak naprawdę chcesz zrobić. Tak sobie po prostu chcesz wykonać SELECT ... FOR UPDATE ? Pozdro -- Borafu Re: [MSSQL2005]2008-01-24 21:50:36 | autor: rorkBorafu pisze:
> rork pisze: >> Witam, >> >> wykonując zapytanie typu SELECT * FROM ... FOR UPDATE dostaję komunikat: >> FOR UPDATE clause allowed only for DECLARE CURSOR >> >> czy któryś z szanownych grupowiczów/grupowiczek orientuje się jak >> poradzić sobie z tym problemem? > > Ale z jakim problemem? > Bo wróżka ma dziś wolne, komunikat jest jasny, tylko nie wiem co Ty tak > naprawdę chcesz zrobić. > > Tak sobie po prostu chcesz wykonać SELECT ... FOR UPDATE ? > > Pozdro aplikacja javowa próbuje się komunikować z bazą danych MS SQL Server 2005 za pomocą komend zdefiniowanych w specyfikacji SQL 92 używając driverów microsoftwowych JDBC Driver 1.2 które podobno implementują specyfikację JDBC 3.0. I tak sobie po prostu chcę zawołać zapytanie w stylu SELECT * FROM ... FOR UPDATE aby zalockować tabelę/krotkę do momentu jej aktualizacji. jednak okazuje się że to zapytanie które jest częścią specyfikacji SQL 92 nie może być wykonane z powodów mi nieznanych. i nie jest tutaj problemem to co chcę wykonać tylko dlaczego ten sposób nie działa. smuci mnie to gdyż ta sama aplikacja (czyli i to zapytanie) działa poprawnie na 3 innych bazach (db2, oracle, derby). tak więc chciałem zasięgnąć porady czy może ktoś ma podejrzenie co do przyczyny. rozpisałem się celowo aby nie zostawić wątpliwości. dzięki z góry pozdr rork Re: [MSSQL2005]2008-01-24 22:03:52 | autor: Borafurork pisze:
>>> >>> wykonując zapytanie typu SELECT * FROM ... FOR UPDATE dostaję komunikat: >>> FOR UPDATE clause allowed only for DECLARE CURSOR >> >> Tak sobie po prostu chcesz wykonać SELECT ... FOR UPDATE ? >> > aplikacja javowa próbuje się komunikować z bazą danych MS SQL Server > 2005 za pomocą komend zdefiniowanych w specyfikacji SQL 92 używając > driverów microsoftwowych JDBC Driver 1.2 które podobno implementują > specyfikację JDBC 3.0. I tak sobie po prostu chcę zawołać zapytanie w > stylu SELECT * FROM ... FOR UPDATE aby zalockować tabelę/krotkę do > momentu jej aktualizacji. jednak okazuje się że to zapytanie które jest > częścią specyfikacji SQL 92 nie może być wykonane z powodów mi > nieznanych. No to krótko: nie wiem jak to jest w specyfikacji SQL 92, ale w TRANSACT SQL (znaczy się w MS SQL 2005) klauzula FOR UPDATE jest dozwolona jedynie w DECLARE CURSOR, dokładnie tak jak Ci to podano w komunikacie. I już. Pozdro -- Borafu Re: [MSSQL2005]2008-01-25 07:34:10 | autor: monoSOFT> > aplikacja javowa próbuje się komunikować z bazą danych MS SQL Server 2005 > za pomocą komend zdefiniowanych w specyfikacji SQL 92 używając driverów > microsoftwowych JDBC Driver 1.2 które podobno implementują specyfikację > JDBC 3.0. I tak sobie po prostu chcę zawołać zapytanie w stylu SELECT * > FROM ... FOR UPDATE aby zalockować tabelę/krotkę do momentu jej > aktualizacji. jednak okazuje się że to zapytanie które jest częścią > specyfikacji SQL 92 nie może być wykonane z powodów mi nieznanych. i nie > jest tutaj problemem to co chcę wykonać tylko dlaczego ten sposób nie > działa. smuci mnie to gdyż ta sama aplikacja (czyli i to zapytanie) działa > poprawnie na 3 innych bazach (db2, oracle, derby). tak więc chciałem > zasięgnąć porady czy może ktoś ma podejrzenie co do przyczyny. > W MSSQLu update locki robi sie przy pomocy hintu np.: SELECT au_lname FROM authors WITH (UPDLOCK) Jak to się ma do JDBC nie wiem monoSOFT www.monosoft.pl Podobne
|
