У меня проблема с clientdataset
и findnearest
методом.
Я показываю несколько записей в dbgrid
и использую щелчок по заголовку для изменения индекса и сортировки сетки. Я также могу щелкнуть столбец второй раз, чтобы изменить сортировку столбца с восходящей на нисходящую. Кроме того, после того, как я щелкнул столбец, у меня появилось поле Tedit
, в котором пользователь может вводить данные, а программа использует метод findnearest
для поиска ближайшего совпадения в столбце, который был нажат. Это делается для индексов по возрастанию или по убыванию.
Моя проблема в том, что когда индекс находится в убывающей последовательности, findnearest
выбирает запись после той, которая должна была быть выбрана.
Вот некоторые данные, один набор данных в порядке возрастания, другой - в порядке убывания.
По возрастанию - Эйбл, Арнольд, Арни, Барни, Бубба
По убыванию - Бубба, Барни, Арни, Арнольд, Эйбл
Когда я ищу "A" по возрастанию, указатель записи останавливается на Able. Когда я ищу "B" по убыванию, указатель записи останавливается на Арни. Мои два примера не являются теорией, это то, что происходит на самом деле.
Мои вопросы - почему в порядке убывания пропускаются Бубба и Барни? Пожалуйста, не приводите мне другого примера. Воспользуйтесь моими данными, если собираетесь привести пример. Пожалуйста, объясните, почему findnearst пропускает первые две записи в убывающей последовательности, которые явно начинаются с буквы «B».
A, B, C
илиD, E, F
,W, Y, Z
илиFred, Barney, and Wilma
. Это одна и та же проблема и один и тот же ответ, как бы вы ни задавались. Я объяснил это, используя ваши данные, и вместо того, чтобы на самом деле читать то, что я написал (несколько раз), вы просто изменили данные, чтобы задать вопрос. - person Ken White   schedule 11.01.2014