|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.01.2012, 11:26 | #1 |
Регистрация: 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. помогите плиз. Буду очень рад услышать любые ваши идеи. Заранее спасибо. |
10.01.2012, 12:56 | #2 |
Регистрация: 10.01.2012
Сообщений: 3
|
Причем сама таблица Отоброжается нормально.
но все ровно индексы не вставляются |
10.01.2012, 20:59 | #3 |
Регистрация: 10.01.2012
Сообщений: 3
|
Дорогие друзья, принцип оказался простым, нужно действительно
было убрать обращение из вне. Query->active = false все работает спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |