|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
Имеется таблица: Fio NameИванов ИванИванов ЯрославПетров ПетрСидоров Сидор Если ее проиндексировать Код: sql 1.
а затем добавить новую запись, например, "Курочкин Дмитрий", то он займет нужное место Fio NameИванов ИванИванов ЯрославКурочкин ДмитрийПетров ПетрСидоров Сидор Как сделать сложный индекс по двум полям с возможностью манипулирования направлениями сортировки, чтобы запись при добавлении занимала место согласно сортировке? Т.е. таблица может быть ртсортирована разными способами: Код: sql 1.
+ Иванов Леонид = Fio NameИванов ИванИванов ЛеонидИванов ЯрославКурочкин ДмитрийПетров ПетрСидоров Сидор Код: sql 1.
+ Иванов Леонид = Fio NameИванов ЯрославИванов ЛеонидИванов ИванКурочкин ДмитрийПетров ПетрСидоров Сидор ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 18:35 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
Просто указать все что надо в индексном выражении Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 19:49 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
Мне важно сохранить порядок сортировки полей, например, Fio desc + Name asc. Задача в целом заключается в том, чтобы в отсортированную таблицу вставить запись и она попала в нужное место. До этого у меня сортировка была по 1 полю и индексирование прекрасно работало. Для случая с 2-мя полями можно конечно пересоздать курсор после добавления записи с нужной сортировкой, но придется писать лишний код, например, переместить курсор на новую запись и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 20:18 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreenМне важно сохранить порядок сортировки полей, например, Fio desc + Name asc. Задача в целом заключается в том, чтобы в отсортированную таблицу вставить запись и она попала в нужное место. До этого у меня сортировка была по 1 полю и индексирование прекрасно работало. Для случая с 2-мя полями можно конечно пересоздать курсор после добавления записи с нужной сортировкой, но придется писать лишний код, например, переместить курсор на новую запись и прочее. Ничего не понял. Чем мое предложение не угодило? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 20:21 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreenFio desc + Name asc Понял что надо. Этот изврат можно сделать, сложно, но можно. Только непонятно зачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 20:24 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreenМне важно сохранить порядок сортировки полей, например, Fio desc + Name asc.Сохранить где? Зачем? Задача в целом заключается в том, чтобы в отсортированную таблицу вставить запись и она попала в нужное место.А что, сейчас она попадает куда-то не туда? До этого у меня сортировка была по 1 полю и индексирование прекрасно работало.И почему решали, что индексирование по нескольким полям сделает что-то другое? Для случая с 2-мя полями можно конечно пересоздать курсор после добавления записи с нужной сортировкой,Зачем? Зачем пересоздавать? Что такое создание курсора с нужной сортировкой? но придется писать лишний код, например, переместить курсор на новую запись и прочее.Откуда вы всего этого набрались? Зачем сами себе создаете страшилки? Какое еще пересоздании курсоров если сортировка всего лишь побочный эффект от создания индексов, которое совершенно не требует пересоздания курсоров. У которых, в свою очередь, нет никаких сортировок. Смешались в кучу кони, люди... Индексы в фоксе по ВЫРАЖЕНИЮ, в котором могут участвовать более одного поля. Индексов на таблице/курсоре может быть несколько, переключение между ними не требует никаких затрат. Индексы обновляются при вставке записей все. Отсяда совершенно непонятно где и какие проблемы вы нашли и решение каких проблем ищете. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 20:35 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
Dima T, у меня не получилось построить индекс по вашему примеру. Код: sql 1.
Код: sql 1.
И у меня есть подозрения, что составные индексные выражения не строятся с помощью ASCENDING и DESCENDING. Если я не прав напишите, пожалуйста, как эта команда должна выглядеть полностью? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 22:03 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
правильный проходящий., Курсор создается - Код: sql 1.
Затем он используется в гриде, как источник данных. Если в этот курсор добавить новую запись, и курсор при этом не индексирован, то запись помещается в конец таблицы в гриде. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 22:09 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
Вот то, что написано в хелпе Код: sql 1. 2. 3. 4. 5. 6.
ASCENDING | DESCENDING - там есть, но они вроде как на весь индекс распространяются, а внутрь eExpression можно ли их засунуть ? У меня не вышло. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 22:13 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreenправильный проходящий., Курсор создается - Код: sql 1.
Затем он используется в гриде, как источник данных. Если в этот курсор добавить новую запись, и курсор при этом не индексирован, то запись помещается в конец таблицы в гриде.И что? Что мешает курсор проиндексировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 23:53 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreen Код: sql 1.
И у меня есть подозрения, что составные индексные выражения не строятся с помощью ASCENDING и DESCENDING. Если я не прав напишите, пожалуйста, как эта команда должна выглядеть полностью? 1. Синтаксис надо не придумывать самостоятельно, а изучать по документации к инструменту. 2. Указание направление сортировки относится к выражению, а не к его частям. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2018, 23:59 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
[quot правильный проходящий.]faustgreen2. Указание направление сортировки относится к выражению, а не к его частям. А если как раз таки нужно по частям? В этом то и вопрос ... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 00:15 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreenDima T, у меня не получилось построить индекс по вашему примеру. Код: sql 1.
Код: sql 1.
И у меня есть подозрения, что составные индексные выражения не строятся с помощью ASCENDING и DESCENDING. Если я не прав напишите, пожалуйста, как эта команда должна выглядеть полностью? Как уже выше написали такой синтаксис фокс не поймет, поэтому надо извращаться, а точнее приводить строку к обратному написанию, т.е. преобразовать так чтобы две строки после преобразования сортировались в обратном порядке. Например так Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 07:49 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
[quot faustgreen]правильный проходящий.пропущено... А если как раз таки нужно по частям? В этом то и вопрос ...Составить правильно выражение. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 08:13 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreenправильный проходящий., Курсор создается - Код: sql 1.
Затем он используется в гриде, как источник данных. Если в этот курсор добавить новую запись, и курсор при этом не индексирован, то запись помещается в конец таблицы в гриде. Все просто. После добавления (а также изменения) просто получите курсор по новой, и никаких бубнов не надо. Тем более, что обновятся не только эти данные, но и если кто то еще , что то поменял) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 09:15 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
Скорее всего да, придется так делать, просто искал более красивый способ ... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 09:43 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
index on fio + (name+fio) tag fioname ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 07:19 |
|
Индексирование по составному выражению
|
|||
---|---|---|---|
#18+
faustgreenСкорее всего да, придется так делать, просто искал более красивый способ ... Упс... и чем же такой способ не красив? По мне так он гораздо лучше всех этих индексирований курсоров. Главное все ясно, даже через 10 лет ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 08:06 |
|
|
start [/forum/topic.php?fid=41&msg=39602020&tid=1581823]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 251ms |
total: | 398ms |
0 / 0 |