У меня возникла проблема с clientdataset
и методом findnearest
.Delphi 2009 - clientdataset findnearest
Я показываю ряд записей в dbgrid
и используя заголовок, нажмите, чтобы изменить индекс и сортировать сетку. Я также могу дважды щелкнуть по столбцу, чтобы изменить столбец от возрастающей до сортировки по убыванию. Кроме того, после того, как я нажимаю на столбец, у меня есть поле Tedit
, в котором пользователь может ввести данные, а программа использует метод findnearest
, чтобы найти ближайшее совпадение в столбце, который был нажат. Он делает это для восходящих или нисходящих индексов.
Моя проблема в том, что когда индекс находится в нисходящей последовательности, findnearest
выбирает запись после той, которая должна быть выбрана.
Вот некоторые данные, один набор данных по возрастанию, другой по убыванию.
по возрастанию - Способный, Арнольд, Арни, Barney, Bubba
по убыванию - Bubba, Barney, Арни, Арнольд, Способный
Когда я искать "А" по возрастанию, как указатель земли на Способный. Когда я ищу «B» по убыванию, указатель записи приземляется на Arney. Мои два примера - это не теория, это то, что на самом деле происходит.
Мои вопросы - в порядке убывания, почему он пропускает Bubba и Barney? Пожалуйста, не давайте мне другого примера. Пожалуйста, используйте мои данные, если вы собираетесь привести пример. Пожалуйста, дайте мне объяснение, почему findnearst пропускает первые две записи в нисходящей последовательности, которые явно начинаются с буквы «B».
Ответ не изменится, независимо от того, сколько раз вы меняете данные образца. То же самое, если вы используете 'A, B, C' или' D, E, F' или 'W, Y, Z' или' Fred, Barney и Wilma'. Это та же проблема, и тот же ответ, независимо от того, сколько способов вы его просите.Я объяснил это, используя ваши данные, и вместо того, чтобы читать то, что я написал (несколько раз), вы просто изменили данные, чтобы задать вопрос. –
@Owen - Это очень просто: в порядке убывания «B» «больше, чем« Bubba »и« Barney ». Вот почему «B» пропускает «Bubba». –
Спасибо Sertac, но не B меньше, чем Bubba? Почему, когда я смотрю «Бу», он приземляется на Арни? – Owen