![]() |
|
|
![]()
|
|
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Кароче, мне надо в таблице найти все записи, которые включают какое-то слово[скорее его часть], но НЕ ЗАВИСИМО ОТ ЕГО РЕГИСТРА
Я делаю так:
Но, такая комадна зависит от регистра, в DRKB предлагают использовать CONTAINING, но на ADO он неработает |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
Я такую проблему решал следеющим образом:
допустим нужно найти слово st_Osn:='Программист', а юзер ввел st_find:='рАмм'. в цикле по таблице ( for i:=... ): if (ord(st_osn[i])= ord(st_find[n])) or (ord(st_osn[i])= ord(st_find[n])-32) or (ord(st_osn[i])= ord(st_find[n])+32) then --------------------------------------------------------- Короче здесь праверяются не символы, а их коды. ord('А')-ord('a')=32 (вот что я имею ввиду). но эта схема будет работать наверника, только с буквенными символами. Ну идея думаю понятна, а остальное сам дофантазируешь... Если не разберешься то скину всю функцию, просто писал давно, когда "зеленым" был, стыдновато.... а переписывать нехочиться... |
|||
|
||||
| bursa |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.2.2005 Где: Липецк Репутация: 1 Всего: 1 |
Ух ты! Зачем так сложно. Код, правда, Oracle
Перевести все в верхний регистр - и дело с концом! |
||||
|
|||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Благодарю.
|
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Поторопился
Так вот, на Access'овской базе, к которой я подключился это не работает, говорит незнает что-такое Upper
Учитывая объемы базы - искать будет вечность |
|||
|
||||
| DimW |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
неспорю, [censored34! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме] пример...
а вот зачем:
bursa не в обиду сказано. вот задачка.... что то надо делать!!! А база с данными уже есть или в планах только? если в планах то можно разрешить ввод только верхнего регистра на уровни приложения... |
||||||
|
|||||||
| bursa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.2.2005 Где: Липецк Репутация: 1 Всего: 1 |
Неужто в аксессе нет функции перевода в верхний/нижний регистр? Тогда я пас. Примите соболезнования. И мои извинения. |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
База уже есть, а перевести вводимую строку в нижний регистр можно ф-ией LowerCase. Только вот проблема в том, что в базе слово/часть солва может быть записанно с разными регистрами [орфографию соблюдаю, млин]. bursa Кажись в аксессе реализован SQL/92 |
|||
|
||||
| DDX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 31.1.2005 Где: Москва Репутация: 5 Всего: 5 |
в JetSQL Like и так ищет независимо от регистра
я пробовал: если писать like "*пример*" или даже так like "*прИмЕр*" то находятся записи всех регистров на ура Это сообщение отредактировал(а) DDX - 12.4.2005, 16:11 --------------------
Учиться, учитьcя и ещё раз учиться |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
DDX
Действительно Только, вот вместо * надо % |
|||
|
||||
| DDX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 31.1.2005 Где: Москва Репутация: 5 Всего: 5 |
WolfON
ты не поверишь, но у меня ищется только с *, хотя в справке написано, что они равносильны Важное замечание: такие подстановочные знаки ANSI SQL, как (%) и (_), доступны только при использовании ядра Microsoft® Jet версии 4.X и программы Microsoft OLE DB Provider для Jet. При работе с приложениями Microsoft Access или DAO эти подстановочные знаки воспринимаются как строковые константы. - JETSQL40.CHM Это сообщение отредактировал(а) DDX - 12.4.2005, 18:07 --------------------
Учиться, учитьcя и ещё раз учиться |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2WolfON: не парься, для акцесса ф-ии Upper = Ucase, а Lower = LCase, а остальное по той же схеме.
|
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
DDX блин молоток!!! не поддался на правокацию WolfON...
Я тоже "хорош", праверил в оракле запрос с Like и убедившись что он не работает так как хотелось бы, начал искать тупые обходы... А оказалось, что все поддерживается драйвером Jet... Мне 2 сообщения до сотни не хватает, как только догоню, пополню тебе репутацию!!!! |
|||
|
||||
| DDX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 31.1.2005 Где: Москва Репутация: 5 Всего: 5 |
--------------------
Учиться, учитьcя и ещё раз учиться |
|||
|
||||
| WolfON |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
DimW
А я че? я ниче
|
||||
|
|||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |