|
Буква Ё
|
|||
---|---|---|---|
#18+
Можно ли на уровне самого фокса сделать так чтобы буквы Е и Ё в данных обрабатывались как одна буква Е ? Поменять в таблицах буквы нельзя. Во-первых, таблицы на MSSQL сервере, во вторых хранить надо Ё, а обрабатывать и искать как Е. Просто ломает вставлять везде strtran(), а таких мест под сотню будет. Может есть какое-нибудь готовое красивое решение ? Всех благ. Михаил. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 10:41 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
Кроме strtran() есть еще CHRTRAN() BlackFoxx Поменять в таблицах буквы нельзя. Во-первых, таблицы на MSSQL сервере, во вторых хранить надо Ё, а обрабатывать и искать как Е. Как вариант, если надо хранить как написано, то продублировать это поле в таблице, повесить триггер, который это поле будет обновлять, хранить там с "Е" и это поле использовать для поиска. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 10:51 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
Если используется оператор LIKE в запросах к MS-SQL, то там можно еще так написать: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 11:00 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
BlackFoxx Можно ли на уровне самого фокса сделать так чтобы буквы Е и Ё в данных обрабатывались как одна буква Е ? Поменять в таблицах буквы нельзя. Во-первых, таблицы на MSSQL сервере, во вторых хранить надо Ё, а обрабатывать и искать как Е. Просто ломает вставлять везде strtran(), а таких мест под сотню будет. Может есть какое-нибудь готовое красивое решение ? Установить при индексировании Collation = RUSSIAN. На сервере тоже есть соответствующий collation. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 11:10 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
Sergey Sizov.Установить при индексировании Collation = RUSSIAN. На сервере тоже есть соответствующий collation. Пример можно увидеть, который подтвердит это высказывание? Фокс точно не заставить приравнять 'E' к 'Ё' Код: plaintext 1.
На стороне MS-SQL у меня тоже не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 11:23 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
Кроме предложенных программных решений, существует еще решение на уровне структуры данных. Т.е. в таблице создается дополнительное поле "для поиска" в которое записывается содержимое основного поля, но уже преобразованное для удобства поиска. Например, все буквы в верхнем регистре и все буквы Ё заменены на Е. Соответственно, поиск выполняется не по основному полю, а по этому "поисковому" полю. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 11:31 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
Dima T Sergey Sizov.Установить при индексировании Collation = RUSSIAN. На сервере тоже есть соответствующий collation. Пример можно увидеть, который подтвердит это высказывание? Фокс точно не заставить приравнять 'E' к 'Ё' Код: plaintext 1.
На стороне MS-SQL у меня тоже не получилось. 1. Как я вижу, совершенно проигнорированы слова "при индексировании". 2. У соответствующей колонки в таблице поставить что-то вроде Cyrillic_General_CI_AI. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 11:39 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
Не думаю, что Collate поможет. Пример для FoxPro Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Как видим, Collate различает буквы "е" и "ё". Что логично, поскольку это разные буквы алфавита. Смысл Collation в другом. Он выстраивает символы не по их ASCII-кодам, а в соответствии с алфавитным порядком. При этом "одинаковыми" (не различимыми) становяться большие и маленькие буквы, поскольку это одна и та же буква алфавита, но записанная по другому. Разные буквы алфавита так разными и остаются. Для таблиц MS SQL не проверял, но не думаю, что в этом отношении там сделано что-то другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 11:59 |
|
Буква Ё
|
|||
---|---|---|---|
#18+
Sergey Sizov.1. Как я вижу, совершенно проигнорированы слова "при индексировании". С твоей стороны тоже не видно кода подтверждающего твои предположения. В данном случае не вижу разницы в сравнении по "=" и поиске по индексу. Разница только в использовании Collation = RUSSIAN, индекс эту настройку запоминает в момент создания, а "=" использует текущую. Если в обоих случаях Collation = RUSSIAN, то никакой разницы в способе сравнения нет, что ВладимирМ подтвердил примером. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 12:44 |
|
|
start [/forum/topic.php?fid=41&msg=35551581&tid=1587263]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 444ms |
0 / 0 |