Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2010, 18:38   #1
Arcanorum
Новичок
Джуниор
 
Регистрация: 17.09.2010
Сообщений: 3
По умолчанию Проблема при организации поиска в БД.

Всем доброго времени суток.
Я только начал изучать Delphi. Передо мной стояла задача организовать поиск в простенькой по структуре БД (одна таблица 2 столбца) код и наименование изделие. Но там около 30000 записей. Я написал простенькую программу и для организации поиска нашёл код в интернете, поскольку пока сам составлять коды не умею.

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) > 0 then
begin
ADOTable1.Filtered:=false;
ADOTable1.Filter:=Combobox1.Text + ' LIKE ' + #39 + Edit1.Text + '%' + #39;
ADOTable1.Filtered:=true;
end
else ADOTable1.Filtered:=false;
end;

В Combobox наименование столбцов таблицы. И всё бы то хорошо, но в набивание этих записей видимо участвовали разные люди, либо что то случилось при вытаскивание программы со старой системы... Так вот мне например нужно найти винты. Но там вбито в половине случаев В-на русской раскладке, в другой половине В-на английской.То есть при фильтрации мне не вылазят все искомые значения. Собственно вопрос как организовать поиск чтоб при фильтрации, я получал и те и те. Возможно ли придать английской букве русскую кодировку, если да, то как будет выглядеть код? (проблема не в одной букве, но думаю если одной буквой можно обмануть машину, значит по образцу пропишу для других)

Заранее благодарю)

Последний раз редактировалось Arcanorum; 17.09.2010 в 18:39. Причина: Забыл поблагодарить))
Arcanorum вне форума Ответить с цитированием
Старый 17.09.2010, 19:04   #2
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Вообще проблема намного шире чем тебе кажется. Ведь могли не просто раскладку изменить, могли и пропустить символ и лишний впихнуть, или просто опечатались и вместо "ш" поставили "щ". Полностью автоматизированного рабочего решения я так и не видел. Есть алгоритмы нечеткого сравнения строк, но это в гугл ).
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 17.09.2010, 19:33   #3
Arcanorum
Новичок
Джуниор
 
Регистрация: 17.09.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от XeruH Посмотреть сообщение
Вообще проблема намного шире чем тебе кажется. Ведь могли не просто раскладку изменить, могли и пропустить символ и лишний впихнуть, или просто опечатались и вместо "ш" поставили "щ". Полностью автоматизированного рабочего решения я так и не видел. Есть алгоритмы нечеткого сравнения строк, но это в гугл ).
Ну предположим что проблема только в раскладке. Всё таки база крупного промышленного предъприятия и там всё по ГОСТу как говориться
Arcanorum вне форума Ответить с цитированием
Старый 17.09.2010, 20:23   #4
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

Я бы прошелся по всей базе и заменил все B английские на В русские. и вообще прежде привел бы базу в порядок. Такие ошибки надо ловить при вводе документов. Если при выгрузке что-то глюкнуло, то скорее эти глюки единообразные и их можно один раз программно исправить. У меня была база с иностранцами, где ФИО русскими буквами написаны все. Вот это была ж... 90 проц. базы удалось "причесать", а остальные 10 проц. ручками.
SELECT BEST FROM LIFE
Dimasw вне форума Ответить с цитированием
Старый 17.09.2010, 20:39   #5
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Тоже думаю что лучше один раз привести базу в порядок. Вынести эти названия в отдельный справочник и при забивании данных пусть выбирают из справочника. А редактирование справочника там уже пытаться отлавливать такие махинации )
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 17.09.2010, 20:40   #6
Arcanorum
Новичок
Джуниор
 
Регистрация: 17.09.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Dimasw Посмотреть сообщение
Я бы прошелся по всей базе и заменил все B английские на В русские. и вообще прежде привел бы базу в порядок. Такие ошибки надо ловить при вводе документов. Если при выгрузке что-то глюкнуло, то скорее эти глюки единообразные и их можно один раз программно исправить. У меня была база с иностранцами, где ФИО русскими буквами написаны все. Вот это была ж... 90 проц. базы удалось "причесать", а остальные 10 проц. ручками.
Угу, спасибо уже начал замены в Access...
Arcanorum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кнопкой поиска ozarnik585 Помощь студентам 0 10.03.2010 08:47
Проблема при открытии базы при помощи ADO SlavaSH БД в Delphi 21 30.06.2009 16:51
Проблема при организации формы загрузки... Oleg Romanchuk Общие вопросы Delphi 3 23.03.2009 10:48
Вопрос по организации поиска и расстановки меток Melifaro Компоненты Delphi 4 01.11.2007 09:53
косяк при организации итерационных вычислений redfield Microsoft Office Excel 3 04.09.2007 21:35