:: Visual Foxpro, Foxpro for DOS
Вопрос по SELECT - SQL, секция - WHERE
ZenTigra

Сообщений: 514
Дата регистрации: 03.12.2004
Сегодня обнаружил что фильтр у SQL запросе не чуствительный к регистру, это стандартно так, или у меня какие то настройки сделаны,
Например:
В таблице поле name имеет значение "Товар"
Эта запись попадет в выборку, при таком SQL запросе
SELECT table1.key, table1.name;
FROM table1;
WHERE table1.name = "товар";
ORDER BY table1.name;
INTO CURSOR SQL_table1
Как видете, я набрал строку поиска с маленькой буквы. Пробловал ставить двойной "==", не помогает, запись попадает у выборку.

PS.Про SET ANSI ON | OFF я в курсе, но там отсечение лишнего (Например, при SET ANSI ON 'Товар' = 'Тов')

ЗЫ. А я раньше мучался, с UPPER() , VisualFoxPro 9.0 SP2 09.00.0000.7423



Исправлено 1 раз(а). Последнее : ZenTigra, 06.09.23 10:21
Ratings: 0 negative/0 positive
Re: Вопрос по SELECT - SQL, секция - WHERE
PaulWist

Сообщений: 14693
Дата регистрации: 01.04.2004
ZenTigra
Сегодня обнаружил что фильтр у SQL запросе не чуствительный к регистру, это стандартно так, или у меня какие то настройки сделаны,

Это стандартно для твоих настроек c COLLATE RUSSIA.


set collate to mashine
SELECT table1.key, table1.name;
FROM table1;
WHERE table1.name = "товар";
ORDER BY table1.name;
INTO CURSOR SQL_table1


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/1 positive
Re: Вопрос по SELECT - SQL, секция - WHERE
ZenTigra

Сообщений: 514
Дата регистрации: 03.12.2004
Спасибо, оно.
Месяц назад, решил поэкспериментировать, и поставил в настройках среды RUSSIA, и забыл назад поставить на Мashine.
Не думал, что оно таким боком вылезет.
А тут в среде код тестирую, и с ужасом вижу, что SQL-запрос как то странно себе ведет. Прочтения Help-а не помогло...
Ratings: 0 negative/0 positive
Re: Вопрос по SELECT - SQL, секция - WHERE
Владимир Максимов

Сообщений: 14123
Откуда: Москва
Дата регистрации: 02.09.2000
На всякий случай

Индекс при своем создании "запоминает" тот Collate sequence который был установлен при создании индекса (если явно не указывали опцию COLLATE). Поэтому проверь через ATAGINFO() какое значение у 5 параметра. Могли остаться сюрпризы
Ratings: 0 negative/0 positive
Re: Вопрос по SELECT - SQL, секция - WHERE
of63
Автор

Сообщений: 25599
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
И индес запоминает collate, и сравнивает его с текйщей настройкой фокса, чтобы пользоваться этим индексом (при неравенстве - не пользуется)

Из того, что талдычил по поводу SET COLLATE - это ГЛОБАЛЬНАЯ настройка, меняет "мировозрение" на сравнение текстовых переменных, в т.ч. и в элементарных операторах фокса (не только в "WHERE")

приводил вам примеры для изучения фокса (про collate), типа:
? "А" = "а"
? "П" = "п"
Посмотрите в разных SET COLLATE
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 16 (Гостей: 16)

© 2000-2024 Fox Club 
Яндекс.Метрика