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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2012, 11:26   #1
Nikolay88_x
 
Регистрация: 10.01.2012
Сообщений: 3
По умолчанию Создание первичных индексов в db файле paradox7

Здравствуйте Уважаемые программисты!!! Помогите пожалуйста разобраться:
Возникла ситуация, в которой я не могу понять смысл ошибки.
Мне нужно программно создавать первичные индексы в 2-х таблицах Paradox.
Они связанны по 3-м индексам. в 1-й таб 1- Kurs;Index;Grupa во второй Kurs;IndexPos;Grupa.
Делаю все как положено Убираю связи между таблицами, удаляю индексы, но Когда пытаюсь вставить
индексы, то в первую таблицу они вставляются В отдельном обработчике, а во вторую не вставляются выдает ошибку при нажатии на кнопку сообщение Object not locked, по моему он не видит вторую таблицу. Может есть другой способ добавить индексы без глюков.
я проверил сам db файл программой checkDB но ошибок не обнаружено. Подскажите в чем может быть
вызвана проблема. А если я создаю другой новый проект с новыми таблицами, то программа работает нормально.
Код на удаление индексов.
void __fastcall TForm10::BitBtn2Click(TObject *Sender)
{
if (FileExists("C:\\Studenti\\Grupa1.P X") ||FileExists("C:\\Studenti\\Grupa2. PX"))
{
DeleteFile("C:\\Studenti\\Grupa1.PX ");
DeleteFile("C:\\Studenti\\Grupa2.PX ");
}
while(!Form1->Table1->Eof)
{
Form1->Table1->DeleteIndex("Kurs");
Form1->Table1->DeleteIndex("Index");
Form1->Table1->DeleteIndex("Grupa");
}
while(!Form1->Table2->Eof)
{
Form1->Table2->DeleteIndex("Kurs");
Form1->Table2->DeleteIndex("IndexPos");
Form1->Table2->DeleteIndex("Grupa");
}
Form1->Table1->IndexFieldNames = ""; // Убираем связи между таблицами
Form1->Table1->MasterFields = "";
Form1->Table2->IndexFieldNames = "";
Form1->Table2->MasterFields = ""
}
// Код для создания Индексов.
void __fastcall TForm11::BitBtn2Click(TObject *Sender)
{
while(Form1->Table1->IndexDefs)
{
Form1->Table1->AddIndex("3", "Kurs;Index;Grupa", TIndexOptions() << ixPrimary);
break; // создает индексы нормально в первую таблицу
}
while(Form1->Table2->IndexDefs)
{
Form1->Table2->AddIndex("3", "Kurs;IndexPos;Grupa", TIndexOptions() << ixPrimary); // не видит Объект // не добавляет индексы в Таблицу
break;
}
}
Как сделать чтоб он вставлял во вторую таблицу тоже. Просто не хочется писать проект заново.
Даже пробовал создать базу заново с теми же таблицами, но тоже самое ошибка objekt not locked.
помогите плиз. Буду очень рад услышать любые ваши идеи. Заранее спасибо.
Nikolay88_x вне форума Ответить с цитированием
Старый 10.01.2012, 12:56   #2
Nikolay88_x
 
Регистрация: 10.01.2012
Сообщений: 3
По умолчанию

Причем сама таблица Отоброжается нормально.
но все ровно индексы не вставляются
Nikolay88_x вне форума Ответить с цитированием
Старый 10.01.2012, 20:59   #3
Nikolay88_x
 
Регистрация: 10.01.2012
Сообщений: 3
По умолчанию

Дорогие друзья, принцип оказался простым, нужно действительно
было убрать обращение из вне. Query->active = false
все работает спасибо.
Nikolay88_x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Paradox7 на русском Valera Помощь студентам 0 06.04.2011 15:44
Paradox7 Kobylyansky БД в Delphi 2 22.04.2010 11:58
FastReport + Paradox7 (Помогите) RudeBWoy Общие вопросы C/C++ 3 27.05.2009 22:11
Создание шапки в файле s070308 Microsoft Office Excel 0 30.03.2009 11:05
Paradox7 нужен выпадающий список. Hellen БД в Delphi 2 18.02.2007 17:17