![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
В фактических значениях параметров функций.