Поиск по индексу. Проблема.

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Поиск по индексу. Проблема.

Сообщение Maverick »

Суть такова
Есть временная таблица
Table Struct tmpVigXM
(
FIO : String [100],
SP : string [10],
NP : string [10],
dP : date,
cRec : comp
)
With Index
(
ByUniq = FIO+SP+NP+dp (Unique),
ByRec = cRec
);

Не проходит индексный поиск по условию индекса:
GetFirst tmpVigXM Where (( ff == FIO And s==SP And n==NP And dt==DP)) не возвращает tsOk, хотя при этом запись соответствующая ff, s, n, dt есть в этой таблице.
Пробовал описывать это условие в CreateView, в Where, а в обработчике после определения переменных делал If GetFirst tmpVigXM. И опять не возвращает tsOk. Все равно не находит блин.
Уже голову сломал в чем косяк.
Поиск по части индекса ничего не даст - т.к. записи должны быть уникальными по совокупности всех полей.
Есть идеи ?
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Spvl
Постоянный обитатель
Сообщения: 136
Зарегистрирован: 29 мар 2005, 17:49

Re: Поиск по индексу. Проблема.

Сообщение Spvl »

Индекс неправильно описан
ByUniq = FIO+SP+NP+dp (Unique)

Я так понимаю наверное нужен сегментный индекс для такого поиска SEG см. доку по SQL
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Поиск по индексу. Проблема.

Сообщение Deinis »

Странно, у меня как раз-таки работает. Версия Галактики - 5.84.
Goblin
Местный житель
Сообщения: 474
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь-матушка
Контактная информация:

Re: Поиск по индексу. Проблема.

Сообщение Goblin »

Если индекс уникальный должен быть - то оно вот так выглядеть должно ...

ByUniq = FIO(Unique)+SP(Unique)+NP(Unique)+dp(Unique)

И попробуй после сцепки перед =tsOk указать напрямую индекс по которому должен делаться GetFirst :
If(GetFirst tmpVigXM Where (( ff == FIO And s==SP And n==NP And dt==DP)) ordered by index ByUniq =tsOk)
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Поиск по индексу. Проблема.

Сообщение Maverick »

2 Spvl
2 Туманов О.В.

1. Индекс как раз описан правильно
2. Уникальными должны быть не сегменты индекса а индекс полностью, т.к. табла может содержать записи типа

Иванов 23 1 22/12/2000
Иванов 23 1 22/12/2001

но не может содержать 2 одинаковые записи типа
Иванов 23 1 22/12/2000
Иванов 23 1 22/12/2000

Проблему частично решил, уменьшив длину полей, соответственно, уменьшилась длина индекса в байтах, хотя я точно знаю что длина индекса может быть до 255 байт...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Поиск по индексу. Проблема.

Сообщение Maverick »

В общем обнаружил "интересную" вещь.
Имею два компа - один на работе, один дома
И там и там стоит один и тот же атлантис, те же настройки первасива, та же галка, только на работе - в сети, дома - на локале...
На работе поиск не работает, дома - работает. Причем, если компилю дома и приношу ресурсник на работу - все работает, если то же самое компилю на работе - не работает ни на одном ни на другом компе...
Я весь такой потерянный... ??? ??? ??? :-[
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
sth
Постоянный обитатель
Сообщения: 148
Зарегистрирован: 29 мар 2005, 17:49

Re: Поиск по индексу. Проблема.

Сообщение sth »

можть exe-шники (и атлантиса и галактики - домашние и рабочие) сравнить?

можть там где-то собака порылась?
Maxim
Постоянный гость
Сообщения: 96
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Пермь

Re: Поиск по индексу. Проблема.

Сообщение Maxim »

Может не совпадают версии Pervasive локальная и сетевая?

Локально стоит наверное Pervasive 2000i SP3, а сетевой Pervasive 2000i SP4 + SP4TFT. Или поставить SP4 + SP4TFT...

Или пропатчить локальный pervasive.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Поиск по индексу. Проблема.

Сообщение edward_K »

SP4 вообще то плохо с галой дружить - еще один глюк с формированием платежных ведомостей. Это решает заплатка на SP4, которая валяется где то на серваке галактики.
решит ли она эту проблему не знаю.
Ответить