Witam
Mam taki problem, zostałem zmuszony do zmiany bazy danych dla działającego programu. Obyło sie bez większych problemów za wyjątkiem jednej komendy update. Do dzis program działał na bazie INTERBASE i komende wywoływałem o tak:
pstmt = polaczenie.prepareStatement("update pomysl set nota=? where nr=?");
pstmt.setString(1, "tekst");
pstmt.setString(2, "tekst");
pstmt.executeUpdate();
czyli z sql np:: update pomysl set nota="tekst" where nr="1"
Wszystko działało sprawnie, program przeniosłem na bazę SQL 2008, tebele zostały zorbione analogicznie. Wszystkie kolumny są typy 'text'. Z insertami nie ma problemu jednak update przestały działać.
Przeniosłem dobie zapytanie bezpiśrednio do konsoli SQL i tu ko mojemu zaskoczeniu nie działa nadal ;/
Chyba notacja musi sie różnić.
Mam takie zapytanie:
UPDATE [KAIZEN].[dbo].[Pomysl] SET [NOTA]="tekst" WHERE [NR]="1"
wywala mi błąd:
Msg 207, Level 16, State 1, Line 1
Invalid column name '1'.
UPDATE [KAIZEN].[dbo].[Pomysl] SET [NOTA]='tekst' WHERE [KAIZEN].[dbo].[Pomysl].[NR]='1'
Msg 402, Level 16, State 1, Line 1
The data types text and varchar are incompatible in the equal to operator.
Zmieniałem to zapytanie na 50 sposobów, nic nie skutkuje. ;/ Nie znam notacji w bazie SQL 2008.
NAZWA BAZY: KAIZEN
TABELA: POMYSL
POLA NOTA, STATUS, NR (klucz) - wszystkie typu text. Może to przez typ się tak wykrzacza, jednak odawac nowe rekordy moe problem jest tylko z update.
Prosze o wskazówkę.