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

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

TTable.FindKey находит то, что не находит Locate [D5, dBase, FoxPro]


clickmaker ©   (2003-08-21 15:42:00) 

Причем для TFloatField. Т.е., если создать индекс на такое поле, потом выполнить FindKey(Value) - запись найдена. А если индекс не создавать и сказать Locate("FieldName", Value, []) - ни фига не найдено. В чем грабли?


Johnmen   (2003-08-21 16:45:00) [1]

Все дело в погрешности разрядной сетки.


Desdechado   (2003-08-21 16:40:00) [2]

locate использует индексы, если они есть


clickmaker   (2003-08-21 15:58:00) [3]

Причем, с индексом и Locate начинает находить. Ничё не понимаю... Разве Locate не для того, чтобы искать поля просто по имени, без индексов? Или это чисто DBaseвские заморочки?


clickmaker   (2003-08-21 15:48:00) [4]

Так они одни и те же. Вот такой код пашет

Table_kadr.AddIndex("I_TAB_N", "TAB_N", []);
Table_kadr.indexname:="I_TAB_N";

if Table_kadr.findkey([table1TAB_N.value]) then
// все Ок


А такой нет

if Table_kadr.Locate("TAB_N", table1TAB_N.AsFloat, []) then
// пусто


Вместо AsFloat ставил Value - та же история


Reindeer Moss Eater   (2003-08-21 15:44:00) [5]

В фактических значениях параметров функций.


Наверх

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