Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Select Collation / 11 сообщений из 11, страница 1 из 1
17.03.2008, 11:25
    #35194501
Anti_Hacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
День добрый всем.

База не своя. Менять в ней самой collation не могу. Пишу запрос:

Код: plaintext
1.
2.
3.
4.
select 
	 sMainItemId
	,cast(sFullName as varchar( 40 )) Collate Latvian_BIN as 'sFullName' --SQL_Latin1_General_CP850_BIN
from ItemInfo

И выдает строки вида:
Код: plaintext
1.
 8595147801112 	Z?MULIS AR GUMIJU
Текущяя кодировка всей базы SQL_Latin1_General_CP850_BIN, а мне необходимо отобразить корретные символы кодировки Latvian_BIN (Проще говоря Baltic Collation)

Может я что не правильно делаю? (В клиенте для самой базы (тоже не наша) все отображается корректно)
...
Рейтинг: 0 / 0
17.03.2008, 11:30
    #35194526
Knyazev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
...
Рейтинг: 0 / 0
17.03.2008, 11:38
    #35194561
Anti_Hacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Прочитал от начала и до конца, не помогло. Как привести к кодировке 1257 столбец ?
...
Рейтинг: 0 / 0
17.03.2008, 11:53
    #35194643
Anti_Hacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Что не кто не когда не сталкивался?
...
Рейтинг: 0 / 0
17.03.2008, 12:06
    #35194702
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Anti_HackerЧто не кто не когда не сталкивался?
Если вы представляете себе фразу Collate как аналог некой функции CONVERT_IN_MYCODING, то вы ошибаетесь.
Для отображения сначала нужно, чтобы данные были занесены корректно.
...
Рейтинг: 0 / 0
17.03.2008, 12:16
    #35194742
Anti_Hacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Данны то коректно занесены, под клиентом все показывается коректно.
Проблема в том, что когда я пишу в QA, и результат запроса не отображает символы.
...
Рейтинг: 0 / 0
17.03.2008, 12:18
    #35194751
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Anti_HackerДанны то коректно занесены, под клиентом все показывается коректно.
Проблема в том, что когда я пишу в QA, и результат запроса не отображает символы.
И вы уверены, что клиент выполняет тот же запрос, что и вы в QA ? И что клиент ничего не делает с полученным результатом перед его отображением?
...
Рейтинг: 0 / 0
17.03.2008, 12:23
    #35194771
Anti_Hacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Может и делает, а может просто указана кодировка, ведь в написан он на Delphi, а там можно выставлять в какой кодировке отображать.

Но исходников у меня нет. Можно попробывать в Профайлере поймать запрос, но я что сомневаюсь.
...
Рейтинг: 0 / 0
17.03.2008, 12:27
    #35194792
еен
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Не сомневайтесь) Используйте профайлер для трассировки запросов с клиента.
...
Рейтинг: 0 / 0
17.03.2008, 13:16
    #35195013
Anti_Hacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Вот запрос с клиента:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Select Distinct 
       convert(float,ItemInfo.dItemInternalKey) dItemInternalKey,       ltrim(rtrim(convert(varchar( 24 ),ItemInfo.sMainItemId))) sMainItemId,       ltrim(rtrim(ItemInfo.sFullName)) sFullName
,ItemInfo.* 
,ItemCode.* 
 From ItemInfo,ItemCode 
 Where  1 = 1  
And ItemInfo.bRejected= 0  
And ItemInfo.dItemInternalKey=ItemCode.dItemInternalKey 
And ItemCode.dItemInternalKey= 0 

Так что они преаброзывают его на самом клиенте.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
20.04.2020, 12:24
    #39948905
Gigabitze
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select Collation
Anti_Hacker
Пишу запрос:
Код: sql
1.
2.
3.
4.
select 
	 sMainItemId
	,cast(sFullName as varchar(40)) Collate Latvian_BIN as 'sFullName' --SQL_Latin1_General_CP850_BIN
from ItemInfo


Collate необходимо указывать непосредственно после указания столбца, который выбирается, а не после конвертирования.
Код: sql
1.
2.
3.
4.
select 
	 sMainItemId
	,cast(sFullName Collate Latvian_BIN as varchar(40)) as 'sFullName' --SQL_Latin1_General_CP850_BIN
from ItemInfo
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Select Collation / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]