|
|
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
Опять случилось нарушение FOREIGN KEY, т.е. есть две таблицы, скажем, Tbl1 (f1 text, f2 date, f3 time, f4 double), Tbl2 - те же поля плюс поля f5, f6, ... f10. В первой таблице f1, f2, f3, f4 - ПК, эти же поля и поля f5, f6 ПК во второй таблице. Таблицы связаны между собой по FOREIGN KEY (поля f1, f2, f3, f4 ). А97 Работает в бльшинстве случаев нормально. Но иногда происходит нарушение FOREIGN KEY, т.е. в Tbl2 появляются данные, отличные от Tbl1. Чаще всего по полю f3, иногда по f4. Акс не ругается, таблицы можно открыть. Но в Tbl2 встречаются нередактируемые записи. Что можно предпринять во-первых, чтобы это не происходило, и, во-вторых, если произошло, как ремонтировать? Compact - не помогает! Копировать в-ручную - нудно и теряются данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 18:41:12 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
т.е простыми словами ключ является составным мне кажется что тут и есть проблема а есть ли на самом деле надобность в составном ключе? может можно в первой таблице добавить счётчик как ключ или формировать по своим каким-то правилам не составной ключ, из тех полей сделать составной уникальный индекс и связать таблицы по полю-счётчику ? и не надо будет данные дублировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 19:00:50 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
В идеале - то что предлагает Татьяна, безусловно, лучше. Хотя там тоже полно подводных камушков. Ну, нпример, как заполнять таблицы. Чтобы заполнить вторую, сначала надо заполнить первую, главную и получить ключик, а уж с этим ключиком можно соваться во вторую. На этом пути не мало копий сломано уже... В моем случае, заполнив первую таблицу, не задумываясь ни о чем пишу сразу во вторую, благо ключевые поля у менгя уже в руках. Но по большому случаю, конечно, лучше. С другой стороны, эта конструкция работает давно и достаточно устойчиво. Но случается... иногда... Неприятно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 19:11:14 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
ты сам себе не противоречь пож-та Опять случилось нарушение FOREIGN KEY , т.е. есть две таблицы, скажем, Tbl1 (f1 text, f2 date, f3 time, f4 double), Tbl2 - те же поля плюс поля f5, f6, ... f10. В первой таблице f1, f2, f3, f4 - ПК, эти же поля и поля f5, f6 ПК во второй таблице. Таблицы связаны между собой по FOREIGN KEY (поля f1, f2, f3, f4 ). А97 Работает в бльшинстве случаев нормально. Но иногда происходит нарушение FOREIGN KEY, т.е. в Tbl2 появляются данные, отличные от Tbl1. Чаще всего по полю f3, иногда по f4. Акс не ругается, таблицы можно открыть. Но в Tbl2 встречаются нередактируемые записи. составной ключ из 4 полей? и 4 поля тащить в другую таблицу? к тому же во 2 таб-ле опять составной ключ и во второй поля f5, f6 сделай уникальным индексом и добавь ключ а как же нормализация при таком проэктировании? а что за проблема с заполнением таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 19:26:39 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
Нет проблем! Просто, изменить то, что уже работает- трудно очень! Но вопрос остается без ответа - почему и как? А все остальное, ну просто, у меня при заполнении таблиц всегда есть все данные ключа. Поэтому, надо только соблюсти порядок заполнения таблиц. Что и происходит. И работает. А вот в процессе работы происходит что-то, добавляются милисекунды в полях времени в подчиненной таблице или, вдруг, дабл принимает в мантисе дополнительные цифры, типа, д.б. 111.2, а там 111.200001! И все, ключ летит в тар-тарары. При этом, все данные сохранены! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 21:06:24 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
А вы неявное преобразование типов не используйте. Не бывает так - что вдруг не стого ни с сего число вдруг стало 111.200001 вместо 111.2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 00:32:19 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
HummerА вы неявное преобразование типов не используйте. Не бывает так - что вдруг не стого ни с сего число вдруг стало 111.200001 вместо 111.2. Нет не применяю. Происходит, тем не менее, самопроизвольно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 09:25:18 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
FK по double??? FK по дате, которая по сути своей тоже double? Месье знает толк в извращениях Месье не знает только того, что при операциях с числами с плавающей точкой хронически противопоказаны сравнения на точное равенство because of погрешности машинной арифметики. А если противопоказано сравнение на точное равенство - о каких ключах может идти речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 09:30:52 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
у поля double в обоих таблицах decimal places проверь, надеюсь у тебя не ивритский офис стоит у меня в ивритской версии были такие баги, которых в английской не было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 09:34:14 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
TatianaTу поля double в обоих таблицах decimal places проверь Дык ведь это только формат отображения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 09:41:21 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
TatianaTу поля double в обоих таблицах decimal places проверь, надеюсь у тебя не ивритский офис стоит у меня в ивритской версии были такие баги, которых в английской не было В точку! Именно в ивритской версии. А что делала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 09:51:42 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
что делала - принудительно перевела на английскую, но в этом твоём конкретном случае своё мнение ещё вчера изложила ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 09:56:31 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
TatianaTчто делала - принудительно перевела на английскую, но в этом твоём конкретном случае своё мнение ещё вчера изложила Отношусь с уважением, но что делать с существующей датой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 10:08:08 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
с первой таблицой всё просто разорви связи добавь ещё одно поле -счётчик в 1ю таблицу, оно заполнится автоматом , его и назначишь ключём, а комбинацию из тех 4 - если надо, уникальным индексом это же поле но уже с типом лонг как FOREIGN KEY добавишь во вторую таблицу как его высчитать? напишешь функцию которая будет по комбинации из 4 полей 1й таблицы давать значение счётчика и искать по этой же комбинации во 2 таблице, но с преобразованием поля double к определённому формату (из обеих таблиц) , например с 1 знаком после запятой иличасть до запятой (проанализируй данные) после этого свяжешь по новым полям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 10:27:58 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
TatianaT Все это понятно, только все это уже дано работает у клиентов, во-первых, во-вторых, таких таблиц, как вторая, не одна, а 7, в-третьих, большая часть этих таблиц содержит много записей и, значит, подобная переработка потребует много времени, а от меня потребует много кода. Кроме того, существуют BackUp.Mdb разбитые по меряцам, а значит, для Restore потребуется еще код. Я уж не говорю о том, что придется переделыватьвсе формы и отчеты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 10:45:05 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
сочуствую от всей души просто это лишний раз доказывает что за говённое проэктирование(извеняюсь за грубость) всегда приходится расплачиваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 10:49:34 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
TatianaTсочуствую от всей души просто это лишний раз доказывает что за говённое проэктирование(извеняюсь за грубость) всегда приходится расплачиваться Такова программистская пита: иногда с хумусом, чаще с хариусом! :-) :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 10:57:07 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
Встречал частое разрушение вторичных ключей (целостности) (и базы) при работе на новеле (файл-сервер) из-за не отключенного клиентского кеширования. Ключ не помню. лечится ситуация (помимо восстановления самого файла и целостности в нем ручками) примерно так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 11:00:19 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
assaВстречал частое разрушение вторичных ключей (целостности) (и базы) при работе на новеле (файл-сервер) из-за не отключенного клиентского кеширования. Ключ не помню. лечится ситуация (помимо восстановления самого файла и целостности в нем ручками) примерно так: Код: plaintext И где запустить эту установку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 11:13:19 |
|
||
|
Нарушение FOREIGN KEY
|
|||
|---|---|---|---|
|
#18+
Rivkin Dmitry assaВстречал частое разрушение вторичных ключей (целостности) (и базы) при работе на новеле (файл-сервер) из-за не отключенного клиентского кеширования. Ключ не помню. лечится ситуация (помимо восстановления самого файла и целостности в нем ручками) примерно так: Код: plaintext И где запустить эту установку? это запущается на новеле - админом сети или у каждого клиента проверяются настройки: брал где-то в сети Для сервера Novel 5 with SP5 или больше есть встроенная опция для отключения op-locking . Набрать на консоле сервера: set client file caching enabled = off У клиентов NetWare имеется реквизит Advanced client, который управляет возможностью Opportunistic Locking клиента, и может выборочно активироваться и деактивироваться на клиентской машине для каждого из клиентов. Опцию Opportunistic Locking можно заблокировать также на сервере NetWare, используя для этого подсказку Client File Caching Enabled в разделе NCP Parameters при использовании функции Monitor. Таким образом, эта функция будет заблокирована для всех клиентов этого сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2004, 11:17:09 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32662330&tid=1672253]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 383ms |

| 0 / 0 |
