powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как вставить строку в заданное место при структурном cdx
6 сообщений из 6, страница 1 из 1
Как вставить строку в заданное место при структурном cdx
    #32763073
Andrey_Rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица индексирована структурным cdx с тегом типа кандидат.
Команда insert blank before срабатывает только если индекс удалить.
Не получается индекс заменить на не структурный cdx, потому что тогда не получается создать тег типа candidate.
...
Рейтинг: 0 / 0
Как вставить строку в заданное место при структурном cdx
    #32763165
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно "before" не срабатывает? Ошибка какая?
Скорее всего уже есть в таблице пустое ключевое поле, вот он и ругается...
...
Рейтинг: 0 / 0
Как вставить строку в заданное место при структурном cdx
    #32763187
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тебе вставка именно в указаное место если есть индекс? Бессмысленное занятие. Используй обычную вставку в конец файла через APPEND BLANK или INSERT-SQL.

Если так уж неймется именно в указанное место, то удаляй индекс, делай вставку и создавай индекс заново.
...
Рейтинг: 0 / 0
Как вставить строку в заданное место при структурном cdx
    #32763255
Andrey_Rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМА зачем тебе вставка именно в указаное место если есть индекс? Бессмысленное занятие. Используй обычную вставку в конец файла через APPEND BLANK или INSERT-SQL.

Если так уж неймется именно в указанное место, то удаляй индекс, делай вставку и создавай индекс заново.

Дело в том, что порядок вывода на экран соответствует расположению в таблице и не соответствует индексу, к примеру:
CDE
C
10
101
D
40
401
E
50
501

А кандидат был нужен чтобы было проще отслеживать дубли в таблице, поэтому удалять, а потом создавать уже после вставки нет смысла.
...
Рейтинг: 0 / 0
Как вставить строку в заданное место при структурном cdx
    #32763263
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще один индекс создать влом?

В крайнем случае создают еще одно служебное поле, которое содержит сквозной порядковый номер элемента в списке и по этому полю строится дополнительный индекс. При создании новой строки модифицируется содержимое этого служебного поля у всех записей, которые "ниже" (после) вставляемой.
...
Рейтинг: 0 / 0
Как вставить строку в заданное место при структурном cdx
    #32764188
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Andrey_Rb!

Тебе стоит почитать основы реляционных баз данных. В них (и в фоксе в том
числе) не принято ориентироваться на какой-то там "физический порядок
следования записей" используются лишь собственно поля с данными и не более
того (делай как говорит Владимир если тебе нужно упорядочивать не по
имеющимся полям). Кроме того INSERT BEFORE - команда включенная для обратной
совместимости - её работа во всех возможных условиях не гарантируется (не
факт что только cdx будет её мешать - может найтись ещё с десяток ситуаций
когда она откажется работать). А что ещё более страшно - команда требует
эксклюзивного доступа к таблице. Команда полностью переписывает всю ту часть
dbf-а, что лежит за вставляемой записью (отличное решение - переписывать по
пару мегов информаци ради какого-то там "физического порядка")

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как вставить строку в заданное место при структурном cdx
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]