powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как удалить ссылку на индекс-кандидат из dbf программно?
6 сообщений из 6, страница 1 из 1
Как удалить ссылку на индекс-кандидат из dbf программно?
    #32768899
Andrey_Rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно как-нибудь удалить ссылку на индекс-кандидат из dbf программно? А то при открытии dbf без соответствующего индекса возникает ошибка, при включенном on error do ..., можно конечно перед открытием отключать on error, а затем снова включать, но как тогда быть если ошибка обрабатывается в методе класса error?
...
Рейтинг: 0 / 0
Как удалить ссылку на индекс-кандидат из dbf программно?
    #32768931
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alter table <TableName> drop unique tag <TagName

Removes the candidate index and its index tag. Because a table can have multiple candidate keys, you must specify the name of the candidate index tag.
...
Рейтинг: 0 / 0
Как удалить ссылку на индекс-кандидат из dbf программно?
    #32768979
Andrey_Rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedalter table <TableName> drop unique tag <TagName

Removes the candidate index and its index tag. Because a table can have multiple candidate keys, you must specify the name of the candidate index tag.

А как удалить ссылку на индекс не зная имени каждого тега? Насколько я понял, в этой команде имя тега надо обязательно задавать. Может есть какая-нибудь утилита на VFP, которая открывает файл в двоичном режиме и правит там соответствующие байты?
...
Рейтинг: 0 / 0
Как удалить ссылку на индекс-кандидат из dbf программно?
    #32769004
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За использование индекса отвечает, по-моему, 28 байт. Открывай базу низким уровнем (FOPEN) и правь.
А если не опускаться до низкого уровня, то через функцию TAG(), в цикле можешь получить имена всех тегов и удалить их.
...
Рейтинг: 0 / 0
Как удалить ссылку на индекс-кандидат из dbf программно?
    #32769804
Andrey_Rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedЗа использование индекса отвечает, по-моему, 28 байт. Открывай базу низким уровнем (FOPEN) и правь.
А если не опускаться до низкого уровня, то через функцию TAG(), в цикле можешь получить имена всех тегов и удалить их.

Для использования функции Tag() нужно предварительно открыть dbf, а мне нужно чтобы ссылка удалялась до открытия, потому что cdx файла вообще нет, а ссылка на него существует.

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

Если надо удалить ВСЕ, то DELETE TAG ALL
НЕсли ты уже по рассеянности удалил сам cdx и теперь фокс ругается - то всё
зависит от того входит таблица в БД или является свободной. Для free таблицы
достаточно проигнорировать ошибку 1 раз и фокс сам почистит флаг наличия
cdx-а.
Для таблицы входящей в БД - всё гораздо сложнее. В общем случае нужно
VALIDATE DATABASE RECOVER пользовать. Ну или самому открыть БД как табличку
и почистить её от остатков информации о существовавших когда-то индексах для
нужной таблицы... Кстати признак наличия PK имеется и в записи о собственно
таблице :(

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


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