| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Регистр букв при работе с dbf ч/з ADO |
| Автор: Bes 28.12.2004, 15:34 |
| Здрасте, господа. Где работаю: Д6 ADO dbf Проблема: пишу запрос с like однако результат оказывается чувствительным к регистру т.е. результат на запрос 'aSdFgH' и 'AsDfGh' разные, а д.б. одинаковые как при работе со скул-сервером. Заранее благодарен. |
| Автор: Vit 29.12.2004, 15:27 |
| Если сервер работает в Case sensitive то используйте конвертацию строк в большие буквы при сравнении |
| Автор: Bes 29.12.2004, 16:11 |
| Vit: я пробовал что-то подобное - не получается т.е. параметр-то переделать не проблема, а как запрос-то к верхним буквам привести? Да, еще: слово "сервер"...? Я работаю просто с одним дбф-фалйом - никакого сервера не подразумевается или я не прав? Может можно просто отключить это св-во, т.к. при работе MSSQL2000 такой проблемы не возникало.... :-( |
| Автор: Vit 29.12.2004, 20:24 | ||
Не знаю синтаксис dbf провайдера, чтото типа
только конкретное название функции upper посмотри в справочнике по твоему варианту sql |
| Автор: Bes 30.12.2004, 07:25 |
| Спасибо, я попробую, но дело действительно может быть в особенностях синтаксиса, а где бы можно посмотреть такие справочники? Проверил: запрос такой: select * from upper(catalog) where name like '%AV%' на что она мне и отвечает: [Microsoft][Драйвер ODBC dBase] Ошибка синтаксиса в предложении FROM. :-( |
| Автор: Dimich 30.12.2004, 08:12 | ||
надо так: select * from catalog where upper(name) like '%AV%' |
| Автор: Vit 30.12.2004, 08:27 | ||||
Посмотри внимательно на мой пример
и на то что ты сделал:
Зачем имя таблицы надо переводить в вверхний регистр? |
| Автор: Bes 30.12.2004, 10:23 |
| Блин, точно же - уже значит крыша едет. :-) Признаюсь. глупо и очевидно - глаз замылился- не туда воткнул. :-( Попробовал - все равно не работает, пишет. [Microsoft][Драйвер ODBC dBase] Неопределенная функция upper в выражении. Я же помню, что не работало. :-( |
| Автор: Bes 30.12.2004, 10:56 |
| Урра!!!! Методом научного тыка, косвенной информации и аналогий нашел скул функцию для дбф Lcase - все работает. Всем спасибо. :-) |
| Автор: Dimich 30.12.2004, 11:04 |
| Немного опоздал правда, но действительно различия оказались в диалектах SQL в данном случае аналоги функций Upper() и Lower() есть UCase() и LCase() |
| Автор: Bes 30.12.2004, 11:13 |
| Ага, все равно спасибо за беспокойство. :-) |