powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Парамет COLLATION свойств типа %String
2 сообщений из 2, страница 1 из 1
Парамет COLLATION свойств типа %String
    #36474408
Alexandr Minzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проясни, пожалуйста ситуацию.

При переводе приложения с версии
Cache for Windows NT (Intel) 5.0.20 (Build 6305)
на версию
Cache for Windows (x86-32) 2007.1.3 (Build 607)

Обнаружиласть проблемка:
следующий запрос

select *
from NewTFPs
where tfpcode like '%TEST500%'

в версии 2007.1.3 возвращает результат
в версии 5.0.20 результат не возвращает

в глобале хранится "Test500", индекса по свойству нет.

такое ощущение, что парамету COLLATION свойств типа %String изменили значение по умолчанию
в версии 5.0.20 с EXACT на ALPHAUP в версии 2007.1.3.

Это действитеотно так?
И что мне теперь делать?
Принудительно всем свойствам всех классов типа %String проставить парамет COLLATION в EXACT?
...
Рейтинг: 0 / 0
Парамет COLLATION свойств типа %String
    #36474722
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexandr Minzer
такое ощущение, что парамету COLLATION свойств типа %String изменили значение по умолчанию
в версии 5.0.20 с EXACT на ALPHAUP в версии 2007.1.3.
Это действитеотно так?

Не совсем так. В Cache 5.0 предикат LIKE не смотрел на параметр COLLATION, т.е. всегда был регистрозависимым. Из описания:
Note:
LIKE does not use collation.
Начиная с Cache 2007.1 предикат LIKE стал учитывать параметр COLLATION:

Operator / Predicate Changes
The following are new in version 2007.1:
The LIKE predicate supports letter case collation

По умолчанию, COLLATION = SQLUPPER было как в Cache 5.0, так и в Cache 2009.1 (думаю, что и в более новых версиях такое поведение сохранилось).

Alexandr Minzer
И что мне теперь делать?
Принудительно всем свойствам всех классов типа %String проставить парамет COLLATION в EXACT?
EXACT не рекомендуют использовать для строк, если они могут начинаться с цифр. Лучше пользоваться SQLSTRING:
Код: plaintext
1.
select * from NewTFPs where %SQLSTRING(tfpcode) like '%TEST500%'
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Парамет COLLATION свойств типа %String
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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