for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
  

Как программно прочитать фильтр в индексе
hikmetrza
Автор

Сообщений: 36
Откуда: Baku
Дата: 21.07.20 09:56:03
Добрый день.

Нуждаюсь в помощи. Мне из обстоятельств надо временно автоматизировать процесс переноса базы из MSSQL в Foxpro. В таблицах фокса есть индексы. После переноса данных в фокс мне надо создать индекс. Столкнулся с проблемами: в некоторых справочных таблицах кроме индекса еще есть фильтр для индекса. Как мне программно создать эти фильтры.

[attachment 33537 sprav.png]

P.S. Индексы читаю с помощью КЕЙ,ТАГ. Варианты с АППЕ ФРОМ далее РЕИН не предлогать
Заранее благодарю за помощь и советы.
Ratings: 0 negative/0 positive

Re: Как программно прочитать фильтр в индексе
Simple777

Сообщений: 29537
Дата: 21.07.20 10:12:15
При создании индекса есть опция FOR <условие>

В приведённом примере:

INDE... FOR kod>0 and sta=0

Использование опций FOR и UNIQUE одновременно не допускается,так как может приводить к некорректному результату.



Исправлено: Simple777, 21.07.20 10:12
Ratings: 0 negative/1 positive

Re: Как программно прочитать фильтр в индексе
hikmetrza
Автор

Сообщений: 36
Откуда: Baku
Дата: 21.07.20 10:54:53
INDEX ON eExpression TO IDXFileName | TAG TagName [BINARY]  
     [COLLATE cCollateSequence] [OF CDXFileName] 

[FOR lExpression]

[COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]

если я смогу прочитать "lExpression" то в дальнейшем буду использовать как вы указали
Ratings: 0 negative/0 positive

Re: Как программно прочитать фильтр в индексе
Дмитрий Петров

Сообщений: 2684
Откуда: Пермь
Дата: 21.07.20 11:00:25
Sys(14)
посмотрите
Ratings: 0 negative/1 positive

Re: Как программно прочитать фильтр в индексе
hikmetrza
Автор

Сообщений: 36
Откуда: Baku
Дата: 21.07.20 11:13:52
Благодарю Дмитрий Петров. Получил то что надо

[attachment 33539 sprav2.png]

но с 14 не получился. помог мне 2021
спасибо всем.
Ratings: 0 negative/0 positive

Re: Как программно прочитать фильтр в индексе
Simple777

Сообщений: 29537
Дата: 21.07.20 11:37:15
Вообще говоря, наличие функций ALLTRIM() для индексного выражения выглядит сомнительным, поскольку длина индексного выражения должна быть фиксированной и постоянной.
Ratings: 0 negative/1 positive

Re: Как программно прочитать фильтр в индексе
hikmetrza
Автор

Сообщений: 36
Откуда: Baku
Дата: 21.07.20 14:14:01
Я ради интереса спросил у отдела отчета. Говорили что именно такое им очень нужно.
Ratings: 0 negative/0 positive

Re: Как программно прочитать фильтр в индексе
ssa

Сообщений: 12622
Откуда: Москва
Дата: 21.07.20 14:39:14
hikmetrza
Я ради интереса спросил у отдела отчета. Говорили что именно такое им очень нужно.
Я что -то не понял откуда и куда перенос? Если как в первом посте
hikmetrza
из MSSQL в Foxpro
, то почему индексы смотрятся в фоксе и используются конструкции, которых в MS Sql нет? Или таки из фокса на сервер? Тогда хотелки с Alltrim в выражении индекса идут лесом.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Как программно прочитать фильтр в индексе
hikmetrza
Автор

Сообщений: 36
Откуда: Baku
Дата: 21.07.20 14:58:15
Из за временного проблемы (кому та из высших не понравился новый форма отчета) они вернулись на старый фокс программы который готовить отчеты из таблиц с такими и еще другими индексами. И по этому временно вынуждены выгрузить обратно из СГЛ в фокс.
Ratings: 0 negative/0 positive

Re: Как программно прочитать фильтр в индексе
Igor Korolyov

Сообщений: 34021
Дата: 21.07.20 21:34:40
ATAGINFO() сразу все параметры индексов даёт.

А при использовании ALLTRIM нужно всё выражение привести к фиксированному размеру при помощи скажем PADR.


------------------
WBR, Igor
Ratings: 0 negative/1 positive

Re: Как программно прочитать фильтр в индексе
akvvohinc

Сообщений: 3145
Откуда: Москва
Дата: 22.07.20 17:58:16
hikmetrza
но с 14 не получился. помог мне 2021

Для этого есть функция с "нормальным" именем - FOR().
Ratings: 0 negative/1 positive



Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 10 Simple777 Аспид boba  (Гостей: 7)

25.01.2021 20:00:18 exec: 0.05
Mem: 1.327 Mb

© 2000-2021 Fox Club 
Яндекс.Метрика