Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Парадокс с поисом в Paradox [D7, Paradox]


Script ©   (2005-02-20 16:40:00) 

Такая странная проблема. Есть таблица в которой у каждого ФИО есть три разных очереди. Надо реализовать быстрый поиск  пользователь щелкает на title поля в DBGrid'е по которому будет искать и начинает вводить на клаве цифры(если ищет нужный номер очереди) или буквы(если ищет ФИО). Делаю так:
В OnTitleClick:
if Column.FieldName='N_ob' then data.General.IndexName:='IND_ob';
.....
if Column.FieldName='N_Perv' then data.General.IndexName:='IND_Perv';

SearchField:=Column.FieldName; //глобальная переменная

try
data.General.Locate(SearchField,SearchingText,[loCaseInsensitive,loPartialKey]);
except
end;
Наблюдаю следующее. Ничего не работает. data.General.Locate возвращает False. Думаю "Хм.........". Делаю так - ляпаю на форме кнопку Button1 в ней пишу напрямую
data.General.Locate('N_ob','3',[loCaseInsensitive,loPartialKey]);
Запускаю - не работает. Минут 10 парюсь замечаю следующее. Все работает если текущий индекс(data.General.IndexName) не совпадает с полем по которому идет индекс. Т.е. если:

data.General.IndexName:='IND_Perv';

то

data.General.Locate('N_Perv','3',[loCaseInsensitive,loPartialKey]);
не находит. Если:

data.General.IndexName:='IND_ob';

то

data.General.Locate('N_Perv','3',[loCaseInsensitive,loPartialKey]);

работает. Хз почему так. Может есть какое-то ограничение на Locate о котором я не знаю?
Десять раз перепроверял - все перменные (SerchField,SerchingText) имеют нужное значение.
Кто-нибудь знает в чем дело? Где еще ошибку искать?
Заранее огромное спасибо.


Script   (2005-02-20 19:10:00) [1]

Yeah! Все заработало. Видимо действительно была порушена одна из таблиц. Я пересоздал все индексы, а н только те на которых тестил. Большее спасибо, что подсказали где ковырять.


Anatoly Podgoretsky   (2005-02-20 18:46:00) [2]

А может у тебя система неправильно настроена, у тебя когда ни будь оно работало?
Конечно поиск там отвратиельно работает, но не до тпкой же степени. Попробуй сделай тестовую таблицу и тестовую программу, обязательно попробуй на английских и русских символах.


Script   (2005-02-20 18:37:00) [3]

Так как же еще востанавливать? Удалил, заново создал. Что она все равно порушенной осталась?


Anatoly Podgoretsky   (2005-02-20 18:14:00) [4]

То что не нашла ничего особенного нет, она тоже Парадокс. А то что порушено так это 100 процентов.


Script   (2005-02-20 17:43:00) [5]

Попробовал. И tutil32 ошибок не нашла и после пересоздания индексов эфект не изменился. Не в этом дело кажется.


Anatoly Podgoretsky   (2005-02-20 17:35:00) [6]

Парадока, видимо любимая болезнь попорчены индексы таблицы.
Лечи и так постоянно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо