MSSQL LATIN_1 i polskie znaki

0

Cześć, w bazie danych mam ustawione kodowanie Latin1_General_CI_AS i takie mieć muszę.
I teraz tak. Mam aplikację, która przykładowo dodaje klientów(imie, nazwisko, itd). Dodaje za pomocą zapytania SQL. Niestety, gdy w nazwiskach są polskie litery, do tabeli wchodzą już nazwiska bez nich. Tzn. SQL raczy sobie zamienić Ć na C, ś na s itd.

Próbowałem to samo zapytanie wykonać z poziomu Management Studio. I jest to samo. Ale, gdy w Management Studio otworzyłem sobie tabelę(PPM -> Open table) i przeedytowałem wpis, polskie znaki się pojawiły.

Wiem, że Latin 1 nie obsługuje polskich znaków. Nie zależy mi, żeby w tabeli było np. Ć. Niech se będzie Æ czyli 0xC6(zgodnie z tablicą latin 1), ważne, żeby moja aplikacja pokazała Ć.

Da się to jakoś zrobić? Powtarzam, że w bazie muszę mieć Latin 1

0

Coś czarujesz...

create table x(pole1 nvarchar(200) collate Latin1_General_CI_AS)
insert x values('zażółć gęślą jaźń')
select * from x

zwraca to co powinno.
Ale być może twoim rozwiązaniem będzie:

insert x select 'zażółć gęślą jaźń' collate Latin1_General_CI_AS

pozdrawiaMM

0

Moje pola są typu Varchar, a nie NVarChar. Czy to może mieć wpływ?
Nie mogę używać insertów z selectem w tym wypadku

0

http://pl.wikipedia.org/wiki/ISO_8859-1 masz tam pl znaczki? - nie ma to jakim cudem mają się znaleźć wg ciebie??? varchar a nvarchar to dwie różne rzeczy - to z n na początku to unicode

0
Misiekd napisał(a)

http://pl.wikipedia.org/wiki/ISO_8859-1 masz tam pl znaczki? - nie ma to jakim cudem mają się znaleźć wg ciebie??? varchar a nvarchar to dwie różne rzeczy - to z n na początku to unicode

Napisałem, że doskonale wiem, że w Latin 1 NIE MA POLSKICH ZNAKÓW. Jednak SQL Management Studio jakoś to robi. Spróbuję jutro pola varchar pozamieniać na nvarchar. Może to coś da.

0

Wiem że temat ma kilka miesięcy.
Mam dokładnie ten sam problem, może udało się go jakoś rozwiązać?

varchar na nvarchar nic nie pomaga.

0

Mój epic fail, cóż człowiek uczy się całe życie.

Co mi pomogło:

INSERT INTO [dbo].[bla] ([qwe]) VALUES (N'WYDZIAŁ');

Zwykłe zapytanie jednak MEGA ważne jest wielkie 'N' przed łańcuchami która oznacz ze string jest w unicode.

1 użytkowników online, w tym zalogowanych: 0, gości: 1