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

Как сохраняете результаты модификации? Репро-код привести как-то можно?
...
Рейтинг: 0 / 0
22.06.2009, 12:26
    #36053462
Виктор В
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1548 при модификации таблицы
VFP 8. Открываю проект, в Project manager перехожу на вкладку Data, выбираю мышкой любую таблицу и жму кнопку Modify. Открывается Table Designer. Теперь если что-нибудь изменить (Добавить новое поле, подкорректировать существующее, изменить на вкладке Индексов..., без разницы) и нажать кнопку Ok то получаю ошибку, изменения естественно не сохраняются.
...
Рейтинг: 0 / 0
22.06.2009, 13:00
    #36053541
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1548 при модификации таблицы
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
22.06.2009, 14:18
    #36053745
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1548 при модификации таблицы
Виктор В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
26.06.2009, 11:47
    #36061356
Виктор В
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 1548 при модификации таблицы
ВладимирМ,
Большое спасибо за советы!
Открыл для себя Data Session (мучался при отладке как посмотреть открытые таблицы, создавал копии курсоров на диск *.dbf). В конфиге ничего лишнего не обнаружил, проект создавался "с нуля" без использования класса проекта. В Data Session после ошибки отражаются несколько пустых строчек и ещё одна база data1, которую я добавлял для эксперимента и потом удалил из проекта. В файле MyProject.pjx очистил встретившееся "data1" (надо будет на досуге почитать про структуру этого типа файлов), затем запустил утилитку переиндексации таблиц базы данных (выполняется PACK и REINDEX для каждой таблицы), FoxPro выдал на экран ошибки с предложением удалить связи... После этого всё заработало. Ещё раз спасибо всем.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка 1548 при модификации таблицы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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