Index does not exist index valho как исправить ошибку

Index does not exists Delphi БД Решение и ответ на вопрос 1245680

2 / 2 / 0

Регистрация: 23.06.2013

Сообщений: 125

1

22.08.2014, 10:09. Показов 3327. Ответов 8


Я для table в сво-во IndexDefs создал индекс taPhotoDateIndex.
ДЛя данного индекса установил сво-во Fields= ‘PhotoDate;CapName’ -это поля таблицы. Но все равно выходит ошибка
Index does not exists. Index: TaPhotoDateIndex. Как это исправить?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

22.08.2014, 10:09

8

526 / 464 / 182

Регистрация: 11.12.2013

Сообщений: 2,452

22.08.2014, 10:15

2

можно посмотреть проект?



0



2 / 2 / 0

Регистрация: 23.06.2013

Сообщений: 125

22.08.2014, 10:38

 [ТС]

3

Этот



0



526 / 464 / 182

Регистрация: 11.12.2013

Сообщений: 2,452

22.08.2014, 10:46

4

если не ошибаюсь, то этих индексов в таблице нет. сначала их нужно создать, а потом уже использовать. опять же если не ошибаюсь, то для таблиц Paradox’a необходимо сначала создать первичный ключ, а затем объявлять вторичные ключи.



0



2 / 2 / 0

Регистрация: 23.06.2013

Сообщений: 125

22.08.2014, 15:07

 [ТС]

5

сво-во IndexDefs создал индекс taPhotoDateIndex-это не создание индексов?



0



Алекcей

526 / 464 / 182

Регистрация: 11.12.2013

Сообщений: 2,452

22.08.2014, 15:13

6

нет. вот пример из Help’a, где создается таблица и индексы к ней

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
with Table1 do begin
  Active := False;  
  DatabaseName := 'DBDEMOS';
  TableType := ttParadox;
  TableName := 'CustInfo';
 
  { Don't overwrite an existing table }
 
  if not Table1.Exists then begin
    { The Table component must not be active }
    { First, describe the type of table and give }
    { it a name }
    { Next, describe the fields in the table }
    with FieldDefs do begin
      Clear;
      with AddFieldDef do begin
        Name := 'Field1';
        DataType := ftInteger;
        Required := True;
      end;
      with AddFieldDef do begin
 
        Name := 'Field2';
        DataType := ftString;
        Size := 30;
      end;
    end;
    { Next, describe any indexes }
    with IndexDefs do begin
      Clear;
      { The 1st index has no name because it is
      { a Paradox primary key }
      with AddIndexDef do begin
        Name := '';
        Fields := 'Field1';
        Options := [ixPrimary];
      end;
      with AddIndexDef do begin
 
        Name := 'Fld2Indx';
        Fields := 'Field2';
        Options := [ixCaseInsensitive];
      end;
    end;
    { Call the CreateTable method to create the table }
    CreateTable;
  end;
end;



0



пофигист широкого профиля

4602 / 3062 / 850

Регистрация: 15.07.2013

Сообщений: 17,660

23.08.2014, 02:13

7

Цитата
Сообщение от aleksskay3
Посмотреть сообщение

сво-во IndexDefs создал индекс taPhotoDateIndex-это не создание индексов?

И да и нет. Смотря где и как используется. Чтобы изменить уже готовую таблицу Paradox используй процедуру DBIDoRestrucure. Но разбираться в этой процедуре это тот ещё геморрой.
Так что советую создать индекс для парадоксовской таблице в DatabaseDesktop’e.



0



2 / 2 / 0

Регистрация: 23.06.2013

Сообщений: 125

23.08.2014, 12:43

 [ТС]

8

У меня таблица создается во время выполнения программы. И с использованием сво-во IndexDefs и устанавливая
сво-во Field я в другой программе так создал индексы и все работало.



0



пофигист широкого профиля

4602 / 3062 / 850

Регистрация: 15.07.2013

Сообщений: 17,660

24.08.2014, 02:17

9

Цитата
Сообщение от aleksskay3
Посмотреть сообщение

У меня таблица создается во время выполнения программы.

В таком случае показывай свой код создания таблицы.



0




ya2500



Сообщ.
#7

,
10.05.09, 15:12

    Full Member

    ***

    Рейтинг (т): 8

    // !!! ??? , млин… Paradox/DBE часть вторая: глюки возращаются

    всё почти работает: теперь можно редактировать и сортировать в любом порядке без глюков, даже удалять записи можно, НО не добавлять: автоинкрементное поле Code остаётся пустым, а при попытке отсортировать таблицу после добавления записи возникает ошибка «Field value out of lookup table range»

    да, и после удаления записи (например, номер 2) остальные поля автоинкрементного поля не пересчитываются… видимо, у этих ошибок один общий корень

    так что вопрос, всё-таки не решён (думаю, проблема вполне вписывается в ЭТУ тему, и не стоит заводить новую)

    UPD

    да, проблема видимо в автоинкрементном поле. надо его как-то правильно пересчитывать… щазз сунулся- оно вроде бы не допускает редактирования. щазз разбираюсь…

    UPD

    Цитата

    ручное заведание индексами — вручную их создавать, по мере необходимости, и так же вручную от них избавляться

    тут есть видимо, некоторые моменты, которые мне не совсем понятны в плане реализации. с этими же автоинкрементами, к примеру. помогите, плизз…

    UPD

    я вот что подумал: ведь перед вставкой записи нужно зарезервировать память под неё? с индексами вышло так: заранее в базе заданы индексы, а я из проги их стираю и создаю(такие же как в безе) когда надо.- бред конечно же, НО в свете проблемы с вставкой новой записи вроде бы похоже на то, что если и индексы новые не создаются, возможно, необходимо резерировать память

    ИТОГО:

    вопрос первый: как резервировать память под создание новых индексов и записей?

    вопрос второй: как обновлять значения автоинкрементного поля? пересчитывать обычные поля я умею, но это…

    UPD

    щазз поправил свои БД- работает. удалось уточнить условие возникновения ошибки «Field value out of lookup table range»: теперь, с исправленными базами, она возникает только тогда, когда после изменения данных в LookupTable, данные ч/з DBLookupComboBox подставляем в запись основной таблицы. при этом не важно, пытаемся ли мы вставить новое значение, либо любое из старых- в любом случае возникает та же ошибка.

    такая ситуация уже оставляет надежду на то, что мне, может быть, удастся справиться с оставшейся частью проблемы самостоятельно

    Сообщение отредактировано: ya2500 — 11.05.09, 13:53


    Форум программистов Vingrad

    Поиск:

    Ответ в темуСоздание новой темы
    Создание опроса
    > BDE Error: Index does not exist 

    :(

       

    Опции темы

    radiator
    Дата 19.5.2003, 16:52 (ссылка)
       |    (голосов: 0)
    Загрузка ... Загрузка …




    Быстрая цитата

    Цитата

    Unregistered

    Столкнулся с проблемой: не открывается БД у которой удален индексный файл. Точнее происходит следующее: когда я просматриваю БД через SQL Explorer — все ОК — выводится окно «Production index file missing…» задается вопрос «Open read only» и таблица просматривается. Когда же подобное делается в коде — выскакивает ошибка «Index does not exist», и данные не видны. table.ReadOnly:=true не работает. Что делать?

      Вверх
    AntonSaburov
    Дата 22.5.2003, 18:08 (ссылка)
    | (нет голосов)
    Загрузка ... Загрузка …




    Быстрая цитата

    Цитата

    Штурман
    ****

    Профиль
    Группа: Модератор
    Сообщений: 5658
    Регистрация: 2.7.2002
    Где: Санкт-Петербург

    Репутация: нет
    Всего: 118


    МОДЕРАТОР: Уже много раз просили — указывайте базу данных

    ———————

    Мои проекты для Винграда

    PM MAIL WWW ICQ   Вверх
    Medved
    Дата 23.5.2003, 07:53 (ссылка)
    | (нет голосов)
    Загрузка ... Загрузка …




    Быстрая цитата

    Цитата

    Эксперт
    ****

    Профиль
    Группа: Завсегдатай
    Сообщений: 7209
    Регистрация: 15.9.2002
    Где: Kazakhstan, Astan a

    Репутация: 1
    Всего: 154

    Откройте таблице в Database Desktop, вручную удалите и пересоздайте все индексы.

    ———————

    http://extreme.sport-express.ru/
    …и неважно сколько падал, важно сколько ты вставал…

    PM MAIL WWW ICQ Skype GTalk   Вверх
    radiator
    Дата 23.5.2003, 08:48 (ссылка)
       |    (голосов: 0)
    Загрузка ... Загрузка …




    Быстрая цитата

    Цитата

    Unregistered

    Цитата(AntonSaburov @ 22.5.2003, 18:08)

    МОДЕРАТОР: Уже много раз просили — указывайте базу данных

    Название топика «BDE Error: Index does not exist». BDE расшифровывается как «Borland Database Engine». Думаю дополнительная информация излишня.

      Вверх
    Medved
    Дата 26.5.2003, 21:45 (ссылка)
    | (нет голосов)
    Загрузка ... Загрузка …




    Быстрая цитата

    Цитата

    Эксперт
    ****

    Профиль
    Группа: Завсегдатай
    Сообщений: 7209
    Регистрация: 15.9.2002
    Где: Kazakhstan, Astan a

    Репутация: 1
    Всего: 154

    Цитата
    Название топика «BDE Error: Index does not exist». BDE расшифровывается как «Borland Database Engine». Думаю дополнительная информация излишня.

    Это еще абсолюно ни о чем не говорит. Так как БДЕ — это не база данных, а провайдер. И черезх БДЕ можно подключиться практически к любой базе данных. Лишь бы драйвер был соответствующий. Так что AntonSaburov прав — если хотите получить полноценный ответ, то — указывайте базу данных.

    ———————

    http://extreme.sport-express.ru/
    …и неважно сколько падал, важно сколько ты вставал…

    PM MAIL WWW ICQ Skype GTalk   Вверх



















    Ответ в темуСоздание новой темы
    Создание опроса
    Правила форума «Delphi: Базы данных и репортинг»
    Vit
    Петрович

    Запрещено:

    1. Публиковать ссылки на вскрытые компоненты

    2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

    Обязательно указание:

    1. Базы данных (Paradox, Oracle и т.п.)

    2. Способа доступа (ADO, BDE и т.д.)

    • Литературу по Дельфи обсуждаем здесь
    • Действия модераторов можно обсудить здесь
    • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
    • Вопросы по реализации алгоритмов рассматриваются здесь
    • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи
    • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

    FAQ раздела лежит здесь!


    Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

     

    0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
    0 Пользователей:
    « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »

    Comments

    @jayshrivastava

    @jayshrivastava
    jayshrivastava

    added
    the

    C-enhancement

    Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)

    label

    Nov 9, 2020

    jayshrivastava

    added a commit
    to jayshrivastava/cockroach
    that referenced
    this issue

    Nov 10, 2020

    @jayshrivastava

    Previously, executing a statement to rename an undefined
    index would result in an uncategorized error. This change fixes
    this behaviour by returning a pgcode.UndefinedObject (42704)
    error in the same situation.
    
    Closes: cockroachdb#56465
    
    Release note (sql change): Attempting to rename undefined index
    will return a pgcode.UndefinedObject (42704) error intead of
    an uncategorized error.

    craig bot

    pushed a commit
    that referenced
    this issue

    Nov 10, 2020

    @jayshrivastava

    56455: sql: add pgcode to `ALTER COLUMN SET DEFAULT` type error r=ajwerner a=jayshrivastava
    
    sql: add pgcode to `ALTER COLUMN SET DEFAULT` type error 
    
    Previously, adding a default value of the wrong type to a
    column would return an unclassifed error to the user. This change
    resolves the issue by returning a pgcode.DatatypeMismatch (42804)
    in the specified situation.
    
    Closes: #56449
    
    Release note (sql change): Added a pgcode (42804, DatatypeMismatch)
    when adding a default value of the wrong type to a column.
    
    ---
    sql: add pgcode to `ALTER INDEX ... RENAME TO` undefined index error
    
    Previously, executing a statement to rename an undefined
    index would result in an uncategorized error. This change fixes
    this behaviour by returning a pgcode.UndefinedObject (42704)
    error in the same situation.
    
    Closes: #56465
    
    Release note (sql change): Attempting to rename undefined index
    will return a pgcode.UndefinedObject (42704) error intead of
    an uncategorized error.
    
    Co-authored-by: Jayant Shrivastava <jayants@cockroachlabs.com>

    Comments

    @jayshrivastava

    @jayshrivastava
    jayshrivastava

    added
    the

    C-enhancement

    Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)

    label

    Nov 9, 2020

    jayshrivastava

    added a commit
    to jayshrivastava/cockroach
    that referenced
    this issue

    Nov 10, 2020

    @jayshrivastava

    Previously, executing a statement to rename an undefined
    index would result in an uncategorized error. This change fixes
    this behaviour by returning a pgcode.UndefinedObject (42704)
    error in the same situation.
    
    Closes: cockroachdb#56465
    
    Release note (sql change): Attempting to rename undefined index
    will return a pgcode.UndefinedObject (42704) error intead of
    an uncategorized error.

    craig bot

    pushed a commit
    that referenced
    this issue

    Nov 10, 2020

    @jayshrivastava

    56455: sql: add pgcode to `ALTER COLUMN SET DEFAULT` type error r=ajwerner a=jayshrivastava
    
    sql: add pgcode to `ALTER COLUMN SET DEFAULT` type error 
    
    Previously, adding a default value of the wrong type to a
    column would return an unclassifed error to the user. This change
    resolves the issue by returning a pgcode.DatatypeMismatch (42804)
    in the specified situation.
    
    Closes: #56449
    
    Release note (sql change): Added a pgcode (42804, DatatypeMismatch)
    when adding a default value of the wrong type to a column.
    
    ---
    sql: add pgcode to `ALTER INDEX ... RENAME TO` undefined index error
    
    Previously, executing a statement to rename an undefined
    index would result in an uncategorized error. This change fixes
    this behaviour by returning a pgcode.UndefinedObject (42704)
    error in the same situation.
    
    Closes: #56465
    
    Release note (sql change): Attempting to rename undefined index
    will return a pgcode.UndefinedObject (42704) error intead of
    an uncategorized error.
    
    Co-authored-by: Jayant Shrivastava <jayants@cockroachlabs.com>

    Портал IT-специалистов: программирование, администрирование, базы данных

    • Страница:
    • 1

    Здравствуйте. Пытаюсь создать уникальный DEFERRABLE INITIALLY CONSTRAINT с уникальным индексмом:

    SQL> ALTER TABLE CUST_Rule ADD (
      2  CONSTRAINT XAK_cust
      3  UNIQUE (CUST_ID, SEQ_NB)
      4  DEFERRABLE INITIALLY DEFERRED USING INDEX ( create unique index XAK_ON
     CUST_RULE (CUST_ID, SEQ_NB)  tablespace TS_INDX));
    
    ALTER TABLE CUST_RULE ADD (
    *
    ERROR at line 1:
    ORA-01418: specified index does not exist

    Я хочу объединить создание индекса с alter table поскольку уникальный индекс создается в специфичном табличном пространсве. Если же убрать команду создания индекса, то все работает:

    SQL> ALTER TABLE CUST_RULE ADD (
      2  CONSTRAINT XAK_CUST
      3  UNIQUE (CUST_ID, SEQ_NB)
      4  DEFERRABLE INITIALLY DEFERRED );
    
    Table altered.

    В чем может быть ошибка в первом выражении?

    Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

    Избавтесь от символа подчеркивания между XAK_ON
    .. и главное — вы не можите использовать unique index если хотите создать defferrable constraint!

    Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

    Толик пишет: Избавтесь от символа подчеркивания между XAK_ON
    .. и главное — вы не можите использовать unique index если хотите создать defferrable constraint!

    Спасибо!!! Действительно оказалось, что нельзя использовать уникальный индекс при создании deferrable Constraint!

    Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

    я убрал команду создания индекса и все равно не работает что тут не так, уже достало просто, подскажите господа !

    Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

    Анонимный пишет: Здравствуйте. Пытаюсь создать уникальный DEFERRABLE INITIALLY CONSTRAINT с уникальным индексмом:

    SQL> ALTER TABLE CUST_Rule ADD (
      2  CONSTRAINT XAK_cust
      3  UNIQUE (CUST_ID, SEQ_NB)
      4  DEFERRABLE INITIALLY DEFERRED USING INDEX ( create unique index XAK_ON
     CUST_RULE (CUST_ID, SEQ_NB)  tablespace TS_INDX));
    
    ALTER TABLE CUST_RULE ADD (
    *
    ERROR at line 1:
    ORA-01418: specified index does not exist

    Я хочу объединить создание индекса с alter table поскольку уникальный индекс создается в специфичном табличном пространсве. Если же убрать команду создания индекса, то все работает:

    SQL> ALTER TABLE CUST_RULE ADD (
      2  CONSTRAINT XAK_CUST
      3  UNIQUE (CUST_ID, SEQ_NB)
      4  DEFERRABLE INITIALLY DEFERRED );
    
    Table altered.

    В чем может быть ошибка в первом выражении?

    вот неправильно указано CUST_RULE (CUST_ID, SEQ_NB)

    Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

    • Страница:
    • 1

    Время создания страницы: 0.261 секунд

    Ваш аккаунт

    Разделы

    Понравилась статья? Поделить с друзьями:
  • Index 0 is out of bounds for axis 0 with size 0 ошибка
  • Indesit стиральная машина h20 ошибка что делать
  • Indesit стиралка ошибка h20
  • Indesit ошибка h20 причины
  • Indesit ошибка f09