Builder C++
Проблема с программным созданием индексов в таблице. БД ACCESS. Необходимо программно создать индекс и отсортировать по нему. Индекс создается, но при сортировке по этому индексу, программа выдает ошибку о том, что данный индекс не существует. Заранее спасибо.
для работы с базой в билдере можно использовать как минимум три технологии и куеву тучу компонентов.
Что используется для работы с базой - как происходит обращение к индексу - какой компонент выдает ошибку - кто должен об этом догадаваться?
для работы с базой в билдере можно использовать как минимум три технологии и куеву тучу компонентов.
Что используется для работы с базой - как происходит обращение к индексу - какой компонент выдает ошибку - кто должен об этом догадаваться?
Table1->IndexDefs->Update();
Table1->IndexDefs->Add("DATA_VYDACH","DATA_VYDACH",TIndexOptions());
Но на сортировке
Table1->IndexName="DATA_VYDACH";
Программа выдыет ошибку, что данный индекс не существует
Программа связывается с БД через ODBC. Таблица созданная в ACCESS имеет индексы. Но при доработке программы возникла необходимость в создании нового индекса, т.к. Компонент TTABLE производит сортировку только по индексированному полю. Индекс создается
Table1->IndexDefs->Update();
Table1->IndexDefs->Add("DATA_VYDACH","DATA_VYDACH",TIndexOptions());
Но на сортировке
Table1->IndexName="DATA_VYDACH";
Программа выдыет ошибку, что данный индекс не существует
Table1->Active=false;
Table1->Exclusive=true;
Table1->AddIndex("DDD", "DATA_VYDACH", TIndexOptions() << ixDescending);
DATA_VYDACH - имя поля в БД
DDD - имя нового индекса
На 3 операторе выдает ошибку
class EDBEngineError Key violation.
Может я чего нибудь недопонимаю ???
Написала код
Table1->Active=false;
Table1->Exclusive=true;
Table1->AddIndex("DDD", "DATA_VYDACH", TIndexOptions() << ixDescending);
DATA_VYDACH - имя поля в БД
DDD - имя нового индекса
На 3 операторе выдает ошибку
class EDBEngineError Key violation.
Может я чего нибудь недопонимаю ???
Код нормально работает и никаких ошибок не выдает(естественно если проверять наличие индекса перед его созданием). Твою ошибку возпроизвести не удалось. Возможно ты сталкиваешься с проблемой в самой базе - например если на данное поле уже установлен индекс и некоторые значения не удовлетворяют условию.
Если же для проверки в ACCESS создаю это индекс, а не программно , то программа выполняет сортировку нормально.
ДЕЛАЮ ПРОВЕРКУ - ИНДЕКСА ТАКОГО НЕТ. В бд ПОЛЕ ИМЕЕТ ФОРМАТ - ДАТА и оно не индексировано.
Если же для проверки в ACCESS создаю это индекс, а не программно , то программа выполняет сортировку нормально.
А в базе изначально присутствуют какие либо индексы кроме создаваемого?
З.Ы. И не кричи плиз.
А в базе изначально присутствуют какие либо индексы кроме создаваемого?
З.Ы. И не кричи плиз.
Проверяй внимательно данные - судя по всему причина ошибки - в них.
Подобную ошибку мне удалось получить для индекса данные по которому не соответстветствуют критериям.
Проверяй внимательно данные - судя по всему причина ошибки - в них.
Подобную ошибку мне удалось получить для индекса данные по которому не соответстветствуют критериям.
Или попробуй не устанавливать для индекса параметры - посмотри что скажет.