Index is out of date как исправить
← →
Zhenja ( 2004-03-16 23:20 ) [0]
Ребята помогите пожайлуста!
Что значит Index is out of date?
← →
Алхимик © ( 2004-03-16 23:26 ) [1]
Online переводчик находится по адресу
http://www.translate.ru/
← →
Johnmen © ( 2004-03-16 23:29 ) [2]
Это значит, что имеет место попытка обратиться к несуществующему индексу в списке.
← →
Zhenja ( 2004-03-16 23:31 ) [3]
Я перевод знаю, но не понимаю смысл ошибки
← →
Zhenja ( 2004-03-16 23:33 ) [4]
Индекс создан и програма до сегодня работала
Я удалил индексный файл и создал индекс заново
но все равно не работает:(
← →
Zhenja ( 2004-03-17 00:12 ) [10]
Ты думаеш мне нечего делать только голову людям морочить?
Я же говорю, что индекс есть.
Я даже его заново создал, хотя он был. но все равно выкидает ошибку.
Ладно, и на этом спасибо. Может что-то придумаю
← →
Zacho © ( 2004-03-17 00:16 ) [11]
Или порушился. Но если "Я удалил индексный файл и создал индекс заново" — значит, действительно нет. Кстати, "This must be a single index using the same fields in the same order as specified in IndexFieldNames." Может, в этом проблема ?
← →
Zhenja ( 2004-03-17 00:54 ) [12]
Фигня какая-то
Вообще не хочет включаться любой вторичный индекс
← →
Zacho © ( 2004-03-17 01:05 ) [13]
А точно создан именно один индекс по тем полям, к-рые ты указываешь в IndexFieldNames и порядок полей тот же ?
И еще: "table.indexFieldNames:="поле1,поле2""
Давно уже не работаю с BDE, но насколько помню, правильно "table.indexFieldNames:="поле1;поле2""
← →
Johnmen © ( 2004-03-17 09:26 ) [14]
>Zacho © (17.03.04 01:05) [13]
Какой толк тратить времы на человека, который сам не ценит своего ? Т.к. F1 — и ответы на эти вопросы.
Index is out of date как исправить
Пожалуйста, выделяйте текст программы тегом [сode=pas] . [/сode] . Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля. Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

скажу сразу: FAQ на эту тему прочёл внимательно
суть проблемы: делаю учебное задание на Delphi(Delphi5,Delphi7,32-bit Delphi из Borland Studio 2006- ошибка одна и та же). задание заключается в создании простенькой БД с возможностью редактировать, сортировать. вот тут-то и начинаются проблемы: после внесения изменений в любое из полей сортировка пишет 'index is out of date'. я уже ставил WinXp на другой винт, другую версию Delphi(из вышеперечисленных), и писать базу с нуля- всё та же фигня
патчей, указанных в FAQ скачать не смог. поможите люди добрые, срочно надо! (предпочитаю использовать Delphi7)


и какую лучше выбрать? почему-то учащимся рекомендуют Paradox, в книгах так же примеры даются или с использованием Paradox, или разных субд. по умолчанию, опять таки выбирается Paradox! считаю совершенно необходимым занести в FAQ предупреждение о парадоксе- я там ничего плохого о нём не нашёл. и дать там же рекомендацию на другую субд для новичков

Видимо парадокс наиболее прост для освоения учащимися принципов построения и работы с реляционными базами данных. Так же возможно парадокс более "лучше" работает с bde, то есть интерфейсы бде наиболее лучше подходят именно для парадокса.
- MS Access / ADO
- Mysql
- Interbase / Firebird
- MS SQL Server
- что-нить еще.

соответственно, без строчек помеченных *** сортировка работала (когда в базе были соотв индексы, которые я щазз удалил, и только если поля базы не были изменены)
другие варианты сортировки (аналогичные, но без строчек с *** ) выдают
естественно, так как индексы я из базы поубирал
сдаётся мне, что между *** и *** должно быть что-то ещё.
собственно, если закомментить сортировку и удаление индекса- та же ошибка, т е почему-то не удаётся создать индекс
ещё после нескольких попыток и разнообразных исследований поведения проги в дикой среде, отложил этот вариант проекта, и начинаю делать под MS Access/ADO
для ADO чего-то не хватает. буду делать под DBaseIV/BDE: никуда пока от BDE не деться.
какой уродский этот DBaseIV- это что-то.

похоже, получилось у меня на Paradox7/BDE.
редактирование производится в отдельной форме. добавил пару строк при её активации:
да, и код открытия второй формы получился немного страшным- можно бы здесь зараз это и дообсудить
суть в чём: при обычном открывании формы (с Create связываться не хочу) — да, выпрыгивает вторая форма поверх первой, а после её закрытия главная форма 'прячется' под другие раскрытые окна на десктопе(если они есть- они оказываются поверх нее), что очень не удобно- у меня постоянно на десктопе окон понаоткрыто
вот и всё. и спасибо to SPrograMMer!
поторопился я с выводами(насчёт 'вопрос решён') НО, пока всё работает!
да, и окончательный вариант получился на Delphi7, хотя думаю, это не принципиально

// !!! . , млин. Paradox/DBE часть вторая: глюки возращаются
всё почти работает: теперь можно редактировать и сортировать в любом порядке без глюков, даже удалять записи можно, НО не добавлять: автоинкрементное поле Code остаётся пустым, а при попытке отсортировать таблицу после добавления записи возникает ошибка "Field value out of lookup table range"
да, и после удаления записи (например, номер 2) остальные поля автоинкрементного поля не пересчитываются. видимо, у этих ошибок один общий корень
так что вопрос, всё-таки не решён (думаю, проблема вполне вписывается в ЭТУ тему, и не стоит заводить новую)
да, проблема видимо в автоинкрементном поле. надо его как-то правильно пересчитывать. щазз сунулся- оно вроде бы не допускает редактирования. щазз разбираюсь.
тут есть видимо, некоторые моменты, которые мне не совсем понятны в плане реализации. с этими же автоинкрементами, к примеру. помогите, плизз.
я вот что подумал: ведь перед вставкой записи нужно зарезервировать память под неё? с индексами вышло так: заранее в базе заданы индексы, а я из проги их стираю и создаю(такие же как в безе) когда надо.- бред конечно же, НО в свете проблемы с вставкой новой записи вроде бы похоже на то, что если и индексы новые не создаются, возможно, необходимо резерировать память
вопрос первый: как резервировать память под создание новых индексов и записей?
вопрос второй: как обновлять значения автоинкрементного поля? пересчитывать обычные поля я умею, но это.
щазз поправил свои БД- работает. удалось уточнить условие возникновения ошибки "Field value out of lookup table range": теперь, с исправленными базами, она возникает только тогда, когда после изменения данных в LookupTable, данные ч/з DBLookupComboBox подставляем в запись основной таблицы. при этом не важно, пытаемся ли мы вставить новое значение, либо любое из старых- в любом случае возникает та же ошибка.
такая ситуация уже оставляет надежду на то, что мне, может быть, удастся справиться с оставшейся частью проблемы самостоятельно

- 1
- 2
- 6
- 7
- 8
- 10
- 13
- 14
- 22


вроде бы сделал. всё работает, только редактор LookupTable пришлось вынести в отдельную прогу
а дырки в автоинкрементных полях- всё-таки как-то нехорошо
НО самая большая щазз проблема- объяснить заказчице, как объяснить преподу, что все эти навороты с индексами необходимы для работоспособности программы. там ещё делается пересчёт записей за опр период по опр признаку. так мне пришлось вместо того, чтоб поставить фильтр и посчитать- наоборот: снимать все фильтры и пересчитывать, проверяя условия вручную. да и то из-за странных глюков пришлось вынести редактор LookupTable отдельной прогой, чтоб их избежать
щазз жду звонка заказчицы, и заодно пытаюсь упростить прогу


сорри за офф-топ: как 'отстреляюсь' от проги окончательно- отмечу 'вопрос решён',
а пока- офф-топ:
dron-s, ситуация такая: я — сервисный инженер, собираю/ремонтирую компы, вышел в общий зал, а там так же работает соседняя контора, которая делает рефераты и всё такое прочее. какая-то девочка по ошибке обратилась ко мне с просьбой написать простую прогу. зная, что проги у нас никто не пишет( а так же желая заиметь какой-то опыт в этом деле) я взялся за эту работу. прога оказалась сложнее, чем я полагал. а Delphi- глючнее. у меня никогда раньше Delphi5 не глючил. потом она призналась, что это вообще- дипломная работа! ( а сроки изначально давались два дня. к счастью за эти два дня можно было наваять хоть что-то, а потом- уже делать нормальную версию). я пока ещё не признался, что это- первая программа, которую я пишу за деньги
( ну, не совсем первая- много лет назад написал прогу для плиточника по расчёту кол-ва плитки с учётом обрезаний и пр, но в ней просто была система формул. он некоторое время придумывал всякие дополнения, которые надо дописать, пока не скачал где-то такую прогу, которая помимо расчётов рисует эту плику в доме в 3D. на этом вечное совершенствование проги и закончилось)
я так больше для себя пишу. даже были(вроде бы) проэкты, доведённые до конца