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

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

Как работать с составными(expression) индексами ??? [D6, dBase, FoxPro]


Страницы:   1 2

nikkkk ©   (2003-08-28 17:22:00) 

Уважаемые мастера.
У меня такая вот проблема, есть в таблице FoxPro составной индекс STR(GURN,3)+DTOS(DATOTG)+STR(NOMDOK,7), как органисовать поиск записи с помощью findnierest ???
заранее спасибо!!!


Anatoly Podgoretsky   (2003-08-29 13:49:00) [1]

Это везет, а так надо еще поиск ограничить должным количеством колонок, об этом в той же теме. Может у тебя и сделано это через свойства, но отсюда не видно.


nikkkk   (2003-08-29 13:43:00) [2]

with Table1 do
begin
setkey;
FieldByName("gurn").AsInteger := 1;
FieldByName("datotg").AsDateTime := strtodate("05.02.99");
end;
table1.GotoNearest;
end;
отрабатывает на ура, мгновенно.
!!!спасибо огромное Anatoly Podgoretsky ©!!!


Anatoly Podgoretsky   (2003-08-29 13:38:00) [3]

EditKey я вижу, а SetKey нет, так же не вижу строк с ограничением количества колонок. Эту информацию ты не привел, без нее ответа нет.

А в справке смотреть тему Searching for records based on indexed fields


nikkkk   (2003-08-29 13:38:00) [4]

хотя запись с таким условием точно есть...


nikkkk   (2003-08-29 13:33:00) [5]


> Anatoly Podgoretsky © (29.08.03 13:26) [23]
> nikkkk (29.08.03 13:16) [21]
> Что возвращает GotoKey, это между прочим функция, непонятно
> вообще сможет ли оно что нибудь найти.
>
> nikkkk (29.08.03 13:18) [22]
> Должен.
>
> Ты бы инсталлировал что ли справочную систему Дельфи?


gotokey при :
procedure TForm1.Button1Click(Sender: TObject);
begin
with Table1 do
begin
EditKey;
FieldByName("gurn").AsInteger := 1;
FieldByName("datotg").AsDateTime := strtodate("05.02.99");
GotoKey;
end;
end;

не возвращает вообще ничего, курсор в гриде остается на месте, и ничего не происходит, сколько не кликай.

Справочная система установлена, оттуда и взял я пример для работы с gotokey. Может все из-на того что у меня таблица FoxPro, иза представления даты и времени. и вообще, если запись не найдена, должно ли выдаваться сообщение. Индекс выглядит так( STR(GURN,3)+DTOS(DATOTG)+STR(NOMDOK,7))


Anatoly Podgoretsky   (2003-08-29 13:31:00) [6]

Трудно что либо конкретно говорить, если приведена только часть кода, не самая важная при том.


Sandman25   (2003-08-29 13:28:00) [7]

nikkkk

Рекомендую сначала указывать только
FieldByName("gurn").AsInteger := 1;
а то проблема может быть связана и с представлением даты.


Anatoly Podgoretsky   (2003-08-29 13:26:00) [8]

nikkkk (29.08.03 13:16) [21]
Что возвращает GotoKey, это между прочим функция, непонятно вообще сможет ли оно что нибудь найти.

nikkkk (29.08.03 13:18) [22]
Должен.

Ты бы инсталлировал что ли справочную систему Дельфи?


nikkkk   (2003-08-29 13:18:00) [9]

должен ли курсор в Триде переходить на найденную запись???


nikkkk   (2003-08-29 13:16:00) [10]


> Anatoly Podgoretsky © (29.08.03 13:15) [20]
> nikkkk (29.08.03 13:13) [18]
> Значит не задавать его

если не задаю, не находит вообще ничего, и курсор остается на первой записи...
как быть???


Anatoly Podgoretsky   (2003-08-29 13:15:00) [11]

nikkkk (29.08.03 13:13) [18]
Значит не задавать его


Anatoly Podgoretsky   (2003-08-29 13:13:00) [12]

Зачем это FieldByName("nomdok").AsInteger := null;
Integer и Variant это не совместиые типы


nikkkk   (2003-08-29 13:13:00) [13]

как сделать так чтобы последнее значение :
FieldByName("nomdok").AsInteger := null;
при поиске вообще не учитывалось???


nikkkk   (2003-08-29 13:11:00) [14]

пробую делать:
with Table1 do
begin
EditKey;
FieldByName("gurn").AsInteger := 1;
FieldByName("datotg").AsDateTime := strtodate("01.07.03");
FieldByName("nomdok").AsInteger := null;
GotoKey;
end;

выдает ошибку:invalid variant type conversion
???


Anatoly Podgoretsky   (2003-08-29 13:00:00) [15]

Никакого


nikkkk   (2003-08-29 12:54:00) [16]


> Anatoly Podgoretsky © (29.08.03 12:48) [14]
> GotoKey

и какой тип массива использовать???


Anatoly Podgoretsky   (2003-08-29 12:48:00) [17]

GotoKey


nikkkk   (2003-08-29 12:44:00) [18]


> Anatoly Podgoretsky © (29.08.03 12:31) [12]
> Ты определенно путаешь составные индексы с индексами по
> выражению, на это наводит STR(GURN,3)+DTOS(DATOTG)+STR(NOMDOK,7)

значит это называется индекс по выражению.Понятно.
Как же найти какую либо запись, используя индекс по выражению???


Anatoly Podgoretsky   (2003-08-29 12:31:00) [19]

Ты определенно путаешь составные индексы с индексами по выражению, на это наводит STR(GURN,3)+DTOS(DATOTG)+STR(NOMDOK,7)


Anatoly Podgoretsky   (2003-08-29 12:28:00) [20]

А что именно тебе нужно, но с составными никак, не поддержано в xBase


Страницы:   1 2

Наверх

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