Форум: "Базы";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
ВнизКак работать с составными(expression) индексами ??? Найти похожие ветки
← →
nikkkk (2003-08-28 17:22) [0]Уважаемые мастера.
У меня такая вот проблема, есть в таблице FoxPro составной индекс STR(GURN,3)+DTOS(DATOTG)+STR(NOMDOK,7), как органисовать поиск записи с помощью findnierest ???
заранее спасибо!!!
← →
Ренат (2003-08-28 20:10) [1]с составными индексами ничего не получится
← →
Anatoly Podgoretsky (2003-08-28 20:30) [2]С помощью findnierest никак, он не работает с индексами по выражению.
← →
Anatoly Podgoretsky (2003-08-28 20:31) [3]Ренат © (28.08.03 20:10) [1]
Это ты зря
← →
nikkkk (2003-08-29 09:40) [4]Delphi 6 вообще может работать с составными индексами???
спасибо
← →
nikkkk (2003-08-29 10:06) [5]это вообще возможно, найти запись по составному индексу???
← →
nikkkk (2003-08-29 10:22) [6]I need help !!!
← →
Anatoly Podgoretsky (2003-08-29 10:41) [7]nikkkk (29.08.03 09:40) [4]
Дельфи 6 нет, этим занимаются библиотеки
nikkkk (29.08.03 10:06) [5]
можно
← →
Ренат (2003-08-29 10:59) [8]
> Дельфи 6 нет, этим занимаются библиотеки
я вообще-то это имел в виду
← →
nikkkk (2003-08-29 11:37) [9]
> Anatoly Podgoretsky © (29.08.03 10:41) [7]
> nikkkk (29.08.03 09:40) [4]
> Дельфи 6 нет, этим занимаются библиотеки
>
> nikkkk (29.08.03 10:06) [5]
> можно
как же все таки работать с составными индексами ???
если можна, небольшой пример..
спасибо
← →
nikkkk (2003-08-29 12:20) [10]???
← →
Anatoly Podgoretsky (2003-08-29 12:28) [11]А что именно тебе нужно, но с составными никак, не поддержано в xBase
← →
Anatoly Podgoretsky (2003-08-29 12:31) [12]Ты определенно путаешь составные индексы с индексами по выражению, на это наводит STR(GURN,3)+DTOS(DATOTG)+STR(NOMDOK,7)
← →
nikkkk (2003-08-29 12:44) [13]
> Anatoly Podgoretsky © (29.08.03 12:31) [12]
> Ты определенно путаешь составные индексы с индексами по
> выражению, на это наводит STR(GURN,3)+DTOS(DATOTG)+STR(NOMDOK,7)
значит это называется индекс по выражению.Понятно.
Как же найти какую либо запись, используя индекс по выражению???
← →
Anatoly Podgoretsky (2003-08-29 12:48) [14]GotoKey
← →
nikkkk (2003-08-29 12:54) [15]
> Anatoly Podgoretsky © (29.08.03 12:48) [14]
> GotoKey
и какой тип массива использовать???
← →
Anatoly Podgoretsky (2003-08-29 13:00) [16]Никакого
← →
nikkkk (2003-08-29 13:11) [17]пробую делать:
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
???
← →
nikkkk (2003-08-29 13:13) [18]как сделать так чтобы последнее значение :
FieldByName("nomdok").AsInteger := null;
при поиске вообще не учитывалось???
← →
Anatoly Podgoretsky (2003-08-29 13:13) [19]Зачем это FieldByName("nomdok").AsInteger := null;
Integer и Variant это не совместиые типы
← →
Anatoly Podgoretsky (2003-08-29 13:15) [20]nikkkk (29.08.03 13:13) [18]
Значит не задавать его
← →
nikkkk (2003-08-29 13:16) [21]
> Anatoly Podgoretsky © (29.08.03 13:15) [20]
> nikkkk (29.08.03 13:13) [18]
> Значит не задавать его
если не задаю, не находит вообще ничего, и курсор остается на первой записи...
как быть???
← →
nikkkk (2003-08-29 13:18) [22]должен ли курсор в Триде переходить на найденную запись???
← →
Anatoly Podgoretsky (2003-08-29 13:26) [23]nikkkk (29.08.03 13:16) [21]
Что возвращает GotoKey, это между прочим функция, непонятно вообще сможет ли оно что нибудь найти.
nikkkk (29.08.03 13:18) [22]
Должен.
Ты бы инсталлировал что ли справочную систему Дельфи?
← →
Sandman25 (2003-08-29 13:28) [24]nikkkk
Рекомендую сначала указывать только
FieldByName("gurn").AsInteger := 1;
а то проблема может быть связана и с представлением даты.
← →
Anatoly Podgoretsky (2003-08-29 13:31) [25]Трудно что либо конкретно говорить, если приведена только часть кода, не самая важная при том.
← →
nikkkk (2003-08-29 13:33) [26]
> 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)
)
← →
nikkkk (2003-08-29 13:38) [27]хотя запись с таким условием точно есть...
← →
Anatoly Podgoretsky (2003-08-29 13:38) [28]EditKey я вижу, а SetKey нет, так же не вижу строк с ограничением количества колонок. Эту информацию ты не привел, без нее ответа нет.
А в справке смотреть тему Searching for records based on indexed fields
← →
nikkkk (2003-08-29 13:43) [29]
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:49) [30]Это везет, а так надо еще поиск ограничить должным количеством колонок, об этом в той же теме. Может у тебя и сделано это через свойства, но отсюда не видно.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.012 c