maikl |
Отправлено: 03.01.2004, 13:03 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
У меня программа вроде работала, теперь ошибка вот такая "Key violation" вылазеет когда вношу изменения в БД. У меня в таблице содержаться 3 Lookup поля, т.е значения от туда берутся из других таблиц. До этого все вроде как то работало без ошибок, данные заносились в таблицу без ошибок. Все началось с того что я сделал еще одну таблицу в которой так же были такие же Lookup поля, и вот началась такая ерунда с этой ошибкой. Потом все вернул как и было до того как все работало, но при добавлении записей все равно ошибка остается, а при чем она там. Ну перевел я то что он написал Key — идентификатор записи или группы записей в файле данных (это если применительно к БД), violation — противоречие или нарушение. Подскажите кто нибудь, курсовик скоро сдавать, а тут такая ошибка, в общем не знаю что делать. |
|
Nick |
Отправлено: 03.01.2004, 16:07 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
Или в главной таблице не заполняется ключевое поле, или ты установил зависимость
Поле 3 (Таблица 1) <--> Поле 1 (Таблица 2) и она не выполняется.
Но скорей всего первое. |
|
maikl |
Отправлено: 04.01.2004, 05:59 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Да может быть и такое, что не заполняется ключевое поле, но по каким причинам это может быть вызвано, раньше заполнялось, а тут вдруг с несчего не заполняется. |
|
Nick |
Отправлено: 04.01.2004, 10:34 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
Какая база данных ? |
|
maikl |
Отправлено: 04.01.2004, 10:52 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
БД Paradox, использую компонент Table, хотел Query сначало использовать но с ним при использовании Lookup полей не вносились изменения в БД. Только не говори что лучше использовать IBase, мне уже самому Paradox не нравиться, курсовик скоро сдавать времени все переделывать нету. |
|
Георгий |
Отправлено: 04.01.2004, 12:46 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
может таблица разрушалась — с парадоксом так бывает.
пробовал удалить и заново, с нуля, таблицы данными заполнить? |
|
maikl |
Отправлено: 04.01.2004, 13:01 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Спасибо за совет не пробывал, но мысли такие были, у меня было такое уже один раз, но тогда таблица у меня просто не открывалась, попробую конечно. Хотелось бы знать чего не надо делать что бы этого не случилось. И если можно еще один вопрос, у меня создаются файлы какие то, расширение у него MB (20 файлов уже), такое расширение уже где то видел, не могу вспомнить где, до этого в своих проектах такого не замечал. |
|
Nick |
Отправлено: 04.01.2004, 14:58 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
в файлах MB хранятся донные blob полей.
При потере MB таблица недоступна вообще (это было в Дос может сейчас все изменилось). Я один раз нарвался, до сих пор обхожу блобы стороной.
Проверь еще заполняются ли в связанных полях коды из Lookup таблиц.
Возможно на этих полях стоит ограничение — должны содержать код из связанных таблиц. |
|
CoderDecoder |
Отправлено: 05.01.2004, 14:40 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 26
|
На счет Key violation ! Ущё одно недоразумение — строю мастер\дитейл таблицы, где скажем полю GoodID равным 0001 соответствуют поля GoodID из дитейл таблицы с теми же значениями 0001. А при этом вылетает ошибка Key violation. Ну и как тут быть? |
|
maikl |
Отправлено: 05.01.2004, 14:48 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
QUOTE (Георгий @ 04/01/2004, 21:48) | может таблица разрушалась — с парадоксом так бывает.
пробовал удалить и заново, с нуля, таблицы данными заполнить? |
Попробывал так сделать, удалил все таблицы, и сделал точно такие же, ошибка не исчезла. Самое интересное, заношу с самого начало в таблицу данные, пробую добавить 10 записей в таблицу в итоге заносятся только 3 из них, при этом эта ошибка показалась, затем удалил все записи из таблицы пробую добавить 3 записи, добавляются только 2. Данные у меня кешируются заносятся в таблицу при нажатии на кнопку "Сохранить изменения". Что такое не знаю, почему бы ему не занести все в БД. |
|
*Helly* |
Отправлено: 05.01.2004, 16:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
А изменения сохраняются в правильном порядке: сначала master, а потом detail? |
|
maikl |
Отправлено: 06.01.2004, 05:30 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
В общем даже не знаю, все перепробывал. Кому не лень можите посмотреть сами, проект выкладываю сдесь. В меню справочники есть вкладка "Нагрузка преподавателей" там то при добавленни записей и вылазеет ошибка. Все замечания и предложения приму, а они мне очень нужны. Если че мыльте мне : phantom@tgu.ru или maikls@rambler.ru, можно и по ISQ № 251092703, или оставляйте прямо сдесь. Для запуска проекта у вас еще должен быть установлен globuslib. Ну все, заранее спасибо.
|
|
*Helly* |
Отправлено: 06.01.2004, 14:59 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Хм.. У меня все работает. |
|
maikl |
Отправлено: 06.01.2004, 15:04 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
QUOTE (*Helly* @ 07/01/2004, 00:01) | Хм.. У меня все работает. |
Я пробывал на разных компах, нигде не работает. Наверное надо мной злой рок. Попробуй еще раз, алгоритм такой: Заходишь в раздел Справочники-> Нагрузка преподавателей -> Добавляешь 5 записей -> Сохранить изменения, 100 % должно появиться сообщение с надписью Key Violation. |
|
*Helly* |
Отправлено: 06.01.2004, 16:25 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
У тебя в таблице Nagr_prep.db ключ только из одного поля [DICIP_ID],
а надо из трех — [DICIP_ID, ID_PREP, GRUPPA_ID]. Потому и key vialation — ведь в этом случае сколько у тебя дисциплин, столько и записей в теблице "Нагрузка преподавателей" (по одной на каждую дисциплину) |
|
*Helly* |
Отправлено: 06.01.2004, 16:27 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
А CacheUpdates сделай false в Table1. Оно там триста лет не нужно |
|
maikl |
Отправлено: 06.01.2004, 16:35 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
QUOTE (*Helly* @ 07/01/2004, 01:29) | А CacheUpdates сделай false в Table1. Оно там триста лет не нужно |
Ну не знаю, ошибка в любом случаи не ушла, а так пришлось сделать мне, потому что без этого тоже не работало, а вот сделал кеширование и все сразу заработало, пока как уже говорилось эта ошибка не появилась, самое главное что так как вот сейчас ты смотришь на мой проект все работало, не знаю опыта у меня мало, может сделал что то чего нельзя делать, а что не вижу. |
|
*Helly* |
Отправлено: 06.01.2004, 16:53 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Я на рамблер тебе свой вариант отправила. Проверь, как он у тебя работает. |
|
*Helly* |
Отправлено: 06.01.2004, 16:55 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Может у меня работает, потому что я lookup-поля попеределывала в Table1 |
|
maikl |
Отправлено: 06.01.2004, 16:58 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
В смысле удалила старые, и сделала новые, т.е заново связала их и все ??? |
|
*Helly* |
Отправлено: 06.01.2004, 17:05 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Вроде как да, можешь сравнить со своим проектом, если почта пришла. У тебя там еще ненужные (фактически дублирующиеся) поля были. Ну и составной ключ поставила, естественно. Без этого уж точно работать не будет ничего. |
|
maikl |
Отправлено: 06.01.2004, 17:32 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Огромное спасибо, осталось только разобраться и довести до разума эту программу, теперь мне уже не свернут голову, а то сегодня преподаватель сказала что если не сделаю ее то будет плохо, теперь неделя что бы все доделать. Главное вроде все работает, а то что ты порезала ее, то ничего страшного. |
|
maikl |
Отправлено: 07.01.2004, 11:46 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Рано радовался, эта ошибка пропала лишь частично, если добавить в список дисциплины более 3 повторяющихся дисциплин то она вновь появляется. Т.е получается так что в это поле нельзя заносить более 3-х повторяющихся дисциплин. Ну а в остальных случаях теперь все работает. |
|
maikl |
Отправлено: 08.01.2004, 11:51 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Огромное спасибо **Helly** за решение проблем. |
|