powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка 1548 при модификации таблицы
6 сообщений из 6, страница 1 из 1
Ошибка 1548 при модификации таблицы
    #36048366
Виктор В
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Ситуация следующая. Открываю проект, в нём есть база данных, в ней несколько таблиц. При попытке модифицировать любую таблицу получаю ошибку 1548. Просматривать и редактировать данные даёт без проблем. Создаю новый проект, включаю в него эту же базу - модификация возможна. Ошибка возникает при попытке сохранить результаты модификации. Неструктурных индексов не создавал, команду INDEX не использовал. Помогите советом.
...
Рейтинг: 0 / 0
Ошибка 1548 при модификации таблицы
    #36051870
AK-Shah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор В,

Как сохраняете результаты модификации? Репро-код привести как-то можно?
...
Рейтинг: 0 / 0
Ошибка 1548 при модификации таблицы
    #36053462
Виктор В
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VFP 8. Открываю проект, в Project manager перехожу на вкладку Data, выбираю мышкой любую таблицу и жму кнопку Modify. Открывается Table Designer. Теперь если что-нибудь изменить (Добавить новое поле, подкорректировать существующее, изменить на вкладке Индексов..., без разницы) и нажать кнопку Ok то получаю ошибку, изменения естественно не сохраняются.
...
Рейтинг: 0 / 0
Ошибка 1548 при модификации таблицы
    #36053541
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Error 1548
Table "alias" has one or more non-structural indexes open. Please close them and retry the Begin Transaction

Close all non-structural (non-.CDX) indexes and try the operation again.

If other indexes are open on the file, their writes will go directly to disk and will not be reflected in the table changes until you issue END TRANSACTION. Consequently, if a ROLLBACK is issued, the non-structural indexes will be incorrect.

Судя по описанию ошибки ты это внутри транзакции делаешь.
...
Рейтинг: 0 / 0
Ошибка 1548 при модификации таблицы
    #36053745
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор ВVFP 8. Открываю проект, в Project manager перехожу на вкладку Data, выбираю мышкой любую таблицу и жму кнопку Modify. Открывается Table Designer. Теперь если что-нибудь изменить (Добавить новое поле, подкорректировать существующее, изменить на вкладке Индексов..., без разницы) и нажать кнопку Ok то получаю ошибку, изменения естественно не сохраняются.
Это означает, что где-то, как-то запускается какая-то программа, во-первых, создающая индекс, а, во-вторых, открывающая транзакцию. Это может быть:

1. Программа, автоматически запускающаяся при старте FoxPro (содержимое системной переменной _STARTUP или в Config.FPW настройка COMMAND)

2. Сам файл проекта был создан на базе класса проекта в который был встроен Project Hook. Некий код, запускающийся при наступлении определенных событий проекта. Например, при открытии таблицы (пункт меню Project - Project Info - птичка "Project Class")

3. Были использованы события контейнера базы данных. DataBase Events. В частности, событие на открытие таблицы. dbc_BeforeModifyTable(). Код записан в хранимых процедурах контейнера базы данных.

В общем, посмотри окружение данных (пункт меню Window - Data Session). Что за таблицы там открыты. Причем еще обрати внимание на ComboBox в заголовке с именем "Current Session". Далее выясняй, почему это произошло.
...
Рейтинг: 0 / 0
Ошибка 1548 при модификации таблицы
    #36061356
Виктор В
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,
Большое спасибо за советы!
Открыл для себя Data Session (мучался при отладке как посмотреть открытые таблицы, создавал копии курсоров на диск *.dbf). В конфиге ничего лишнего не обнаружил, проект создавался "с нуля" без использования класса проекта. В Data Session после ошибки отражаются несколько пустых строчек и ещё одна база data1, которую я добавлял для эксперимента и потом удалил из проекта. В файле MyProject.pjx очистил встретившееся "data1" (надо будет на досуге почитать про структуру этого типа файлов), затем запустил утилитку переиндексации таблиц базы данных (выполняется PACK и REINDEX для каждой таблицы), FoxPro выдал на экран ошибки с предложением удалить связи... После этого всё заработало. Ещё раз спасибо всем.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка 1548 при модификации таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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