Informacje24.net
Komputery

[MSSQL2005]

« poprzednia dyskusja | następna dyskusja » Lista grup | pl.comp.bazy-danych

[MSSQL2005]

2008-01-24 17:11:26 | autor: rork

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?

używam drivera:
Microsoft SQL Server 2005 JDBC Driver 1.2

pozdr
rork

Re: [MSSQL2005]

2008-01-24 21:20:54 | autor: Borafu

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
--
Borafu

Re: [MSSQL2005]

2008-01-24 21:50:36 | autor: rork

Borafu 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: Borafu

rork 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

2007-07-27 19:54:54 [MSSQL2005] procedura-dziwy !
2007-08-16 14:18:12 migracja sybase do mssql2005
2007-09-05 09:55:57 mssql2005
2007-09-14 13:01:31 Skrypt na backup (MSSQL2000) i restore (MSSQL2005)
2007-11-30 22:26:19 [MSSQL] MSSQL2005 i zlinkowany Oracle
 
LG KG800
Nokia 6300i
Samsung E250