Автор | Сообщение |
|
| |
Пост N: 204
Зарегистрирован: 03.12.08
|
|
Отправлено: 08.01.15 11:18. Заголовок: Непонятная ошибка в .CDX индексе
Открываем файл базы и стоим индекс ( .CDX ) : USE LAN+"DETAL" NEW ALIAS DETAL EXCLUSIVE INDEX ON CODE TAG CODE TO (LAN+"DETAL") // Код товара INDEX ON UPPER(TYPE) TAG TYPE TO (LAN+"DETAL") // Наименование INDEX ON ACODE TAG ACODE TO (LAN+"DETAL") // Код группы аналогов INDEX ON UPPER(COMMENT) TAG COMMENT TO (LAN+"DETAL") // Описание товара INDEX ON F1 TAG BRANDS TO (LAN+"DETAL") // Код производителя -------------------------------------------------------------------------------------------------- Теперь при попытке изменить содержимое поля F1 (Числовое , код производителя) программа вываливается с ошибкой : _DBFCDX/8006 Обнаружено разрушение данных : BRANDS Не могу понять с чем связано . Раньше всё работало отлично , но только добавил строчку : INDEX ON F1 TAG BRANDS TO (LAN+"DETAL") так и стало вываливаться ..... В сети - один пользователь .
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 4390
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.01.15 11:32. Заголовок: Перед созданием инде..
Перед созданием индекса попробуй его удалить если он есть на диске.
|
|
|
|
| |
Пост N: 205
Зарегистрирован: 03.12.08
|
|
Отправлено: 08.01.15 11:37. Заголовок: Построение индекса и..
Построение индекса идёт с нуля . Разумеется , старый удаляется , а затем идёт построение нового :) Причём переключение на этот TAG идёт , и выборка данных работает . А вот с обновлением поля - сразу вываливается ....
|
|
|
|
| |
Пост N: 4391
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.01.15 11:40. Заголовок: Softlog86 пишет: А ..
Softlog86 пишет: цитата: | А вот с обновлением поля - сразу вываливается .... |
| После редактирования сделай DBCOMMIT()
|
|
|
|
| |
Пост N: 206
Зарегистрирован: 03.12.08
|
|
Отправлено: 08.01.15 11:46. Заголовок: Вываливается ВОВРЕМЯ..
Вываливается ВОВРЕМЯ записи : RLOCK() REPLACE F1 WITH NewBrand <------ Обнаружено разрушение данных ..... DBUNLOCK()
|
|
|
|
| |
Пост N: 4392
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.01.15 12:29. Заголовок: А если переключится ..
А если переключится на тэг CODE и редактировать поле F1 , тоже упадет ? PS А в Harbour падает ?
|
|
|
|
| Администратор
|
Пост N: 3236
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.01.15 12:49. Заголовок: Вот описание этой ош..
Вот описание этой ошибки: 8006: Old key not found This indicates that a key which should have been in the index was not found when an update on the index was made. The most common cause of this error is opening the same index twice. Specifically, the structural index is automatically opened when the database is opened. Some developers then explicitly open the index again with dbSetIndex(). (If you don't want the structural index to be automatically opened, see cmxAutoOpen()). Another reason for this error is updating a database without having an index open, and then later opening that index and further updating the database (i.e., index out of sync with database).
|
|
|
|
| Администратор
|
Пост N: 3237
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.01.15 12:51. Заголовок: Можно еще поискать п..
|
|
|
|
| |
Пост N: 207
Зарегистрирован: 03.12.08
|
|
Отправлено: 08.01.15 12:56. Заголовок: Попробую таким образ..
Попробую таким образом : 1) Нашли нужную запись . R:=RECNO() 2) Переключить активный ТAG на другой . 3) Перейти на запись R 4) редактировать запись ----------------------------------------------- удалённых записей в этом файле нет . Но это ерунда какая-то . в этом файле базы работало 15 лет отлично . Переключались Индексы в любом порядке и ничего не рушилось ...... а тут только попытался добавить новый индекс (ТЭГ) и сразу обломчик .....
|
|
|
|
| постоянный участник
|
Пост N: 1019
Зарегистрирован: 27.01.07
|
|
Отправлено: 08.01.15 14:30. Заголовок: Подобная тема: http:..
|
|
|
|
| постоянный участник
|
Пост N: 472
Зарегистрирован: 13.10.05
|
|
Отправлено: 09.01.15 13:47. Заголовок: INDEX ON F1 TAG BRAN..
цитата: | INDEX ON F1 TAG BRANDS TO (LAN+"DETAL") |
| f1 попробуй преобразовать в строку
|
|
|
|
| |
Пост N: 208
Зарегистрирован: 03.12.08
|
|
Отправлено: 10.01.15 13:06. Заголовок: Vlad04 Так и сделал ..
Vlad04 Так и сделал - заработало . Только пришлось по тексту программы менять условия поиска и сравнения .... Вопрос , почему так происходит ? Может есть ограничение по числу индексов в одном файле ? Хотя у меня есть файлы с 10-ю тэгами - и всё работает ...
|
|
|
|
|
| |
Пост N: 4395
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.01.15 14:38. Заголовок: Softlog86 пишет: Во..
Softlog86 пишет: цитата: | Вопрос , почему так происходит ? |
| Вероятно какой то косяк самого DBFCDX Clipper
|
|
|
|
| |
Пост N: 411
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.01.15 15:23. Заголовок: Softlog86 пишет: _D..
|
|
|
|
| постоянный участник
|
Пост N: 473
Зарегистрирован: 13.10.05
|
|
Отправлено: 10.01.15 21:31. Заголовок: С Clipper 5.01 я ис..
С Clipper 5.01 я использовал SIX drv. Он то же не любил числовых индексов. Всегда я их преобразовывал в строку.
|
|
|
|
| |
Пост N: 76
Зарегистрирован: 05.10.06
|
|
Отправлено: 11.01.15 00:12. Заголовок: А записываемое число..
А записываемое число не превышает размер поля F1 ? еще у меня падал NTX при ошибке в программе когда изменял поле при Recno()>lastrec()
|
|
|
|
| |
Пост N: 4398
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.01.15 00:22. Заголовок: а у меня падало инде..
а у меня падало индексирование на больших базах пока к ключу не добавил str(recno(),12)
|
|
|
|