Index is out of date как исправить
Перейти к содержимому

Index is out of date как исправить

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. на этом вечное совершенствование проги и закончилось)

я так больше для себя пишу. даже были(вроде бы) проэкты, доведённые до конца

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *