Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Целостность данных  [new]
DarkMan
Member

Откуда:
Сообщений: 900
Serg197311
Я начальник технологического отдела

С этого и надо было начинать.
Пункт 1- Начальник всегда прав.
Пункт 2 - Если начальник не прав , смотри пункт 1 .
19 мар 21, 22:03    [22297534]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
vmag
Check Constraint это контрольное ограничение на ключ, поле
есть и на таблицу
21 мар 21, 07:13    [22297831]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
Serg197311
Панург, дайте пож почту какую-нибудь...
три таблицы с тремя (или сколько там нужно для иллюстрации) полями и немного фейковых данных можно и сюда положить.
21 мар 21, 07:16    [22297832]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
Панург
Serg197311
Панург, дайте пож почту какую-нибудь...
три таблицы с тремя (или сколько там нужно для иллюстрации) полями и немного фейковых данных можно и сюда положить.

Выкладываю

К сообщению приложен файл (2.7z - 22Kb) cкачать
21 мар 21, 09:53    [22297845]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
Serg197311
Выкладываю
попробуй

К сообщению приложен файл (2.zip - 31Kb) cкачать
21 мар 21, 12:00    [22297855]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
[quot Панург#22297855]
Serg197311
Выкладываю
попробуй[/quoВ] примере - ограничение накладывается. В рабочей базе - та же ошибка что я на первой стр писал.Буду разбираться. Спасибо огромное в любом случае!

Сообщение было отредактировано: 21 мар 21, 16:09
21 мар 21, 16:16    [22297890]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
Serg197311
В рабочей базе - та же ошибка что я на первой стр писал.Буду разбираться.
на первой странице (22297095) ошибка из-за непарности скобок. Про само условие умолчу.
С этим ограничением в примере всё просто - пока соблюдается условие всё будет сохраняться и добавляться. Возьми запрос и посмотри, он не должен выводить записи.

Сообщение было отредактировано: 21 мар 21, 16:26
21 мар 21, 16:31    [22297893]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
Serg197311, кстати, в твоём примере есть возможность получить срабатывание ограничения при добавлении или редактировании записи, если в существующих и уже связанных в spztmp записях MAIN1 или tprcs позже сменят значение codever.

Сообщение было отредактировано: 21 мар 21, 16:34
21 мар 21, 16:39    [22297896]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
Панург
Serg197311, кстати, в твоём примере есть возможность получить срабатывание ограничения при добавлении или редактировании записи, если в существующих и уже связанных в spztmp записях MAIN1 или tprcs позже сменят значение codever.

В существующих обработках на данный момент нигде не предусмотрено изменений полей codever - ни в MAIN1 ни в tprcs.
Все изменения проводятся через удаление записи и добавление новой(естественно - с учетом связей). В spztmp вообще ни одно поле не изменяется - только удаление или добавление
Так что если ограничение сработает на добавление записи в spztmp - то это будет именно то, чего и добивались.

Сообщение было отредактировано: 22 мар 21, 11:02
22 мар 21, 11:09    [22298101]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
Все проверил, допилил - БИНГО! Работает!!!!
обкатаю на резервных копиях, потом подумаю о вставке в рабочую базу!
Одно не могу понять..... почему
WHERE MAIN1.codever<>tprcs.codever=0
- работает,
а
WHERE MAIN1.codever<>tprcs.codever)=true
- нет.....
22 мар 21, 11:36    [22298126]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
Serg197311
Одно не могу понять..... почему
WHERE MAIN1.codever<>tprcs.codever=0

- работает,
а
WHERE MAIN1.codever<>tprcs.codever)=true

- нет.....
но вообще то
ALTER TABLE spztmp ADD CONSTRAINT CheckVers CHECK 
(
(
SELECT spztmp.CODE 
FROM (spztmp LEFT JOIN MAIN1 ON spztmp.codm1 = MAIN1.code) LEFT JOIN tprcs ON spztmp.cdtp = tprcs.code 
WHERE MAIN1.codever<>tprcs.codever
)=0
)
как бэ так должно быть, т.е. запрос должен возвращать 0 записей, если нет, то сработает запрет. Обрати внимание на скобки.

Сообщение было отредактировано: 22 мар 21, 12:10
22 мар 21, 12:12    [22298151]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
В общем - спасибо огромное Панургу! Ограничение работает точно так как я и хотел! При попытке добавить запись с неправильным codever в spztmp - ругается! При попытке изменить(хоть такого по логике быть никак не должно) неправильным образом - то же ругается!
Зы - на скобки конечно обратил уже внимание, это сюда она попала случайно, пробовал я без нее
22 мар 21, 12:21    [22298159]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
vmag
Member

Откуда: MP
Сообщений: 3964
Serg197311
При попытке добавить запись с неправильным codever в spztmp - ругается!


В spztmp таки добавили поле codever...
Я когда схему открыл из примера 2, увидел в В spztmp поле codever, дальше смотреть не стал...
Оказывается все-таки налепили констрейнов, а просто связи сделать, не ???
Зачем козе баян ?
22 мар 21, 14:04    [22298221]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
vmag
Member

Откуда: MP
Сообщений: 3964
vmag,

не, не туда глянул... не добавили, сорри...
мдя... поля на схеме нечто, Панург немного переставил местами таблицы, я даже этого не заметил,
думал что проблемная внизу, а она уже справа...

Сообщение было отредактировано: 22 мар 21, 14:15
22 мар 21, 14:16    [22298232]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
vmag
Панург немного переставил местами таблицы
ничего я не переставлял
22 мар 21, 14:39    [22298248]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
vmag
Serg197311
При попытке добавить запись с неправильным codever в spztmp - ругается!


В spztmp таки добавили поле codever...

Да это я опять не совсем внятно написал....С неправильным codever надо было написать с разными codever в MAIN1 и tprcs...
Извините уж.....
22 мар 21, 15:06    [22298265]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
Панург, снова вопрос...
Хочу сделать еще один индекс на табл MAIN1
SQL = "ALTER TABLE MAIN1 ADD CONSTRAINT Crt1 CHECK " & _
"(SELECT MAIN1_1.codever " _
& " FROM MAIN1 INNER JOIN MAIN1 AS MAIN1_1 ON MAIN1.OWN = MAIN1_1.code " _
& " WHERE (((MAIN1_1.codever)=[MAIN1]![codever]))=0)"


Смысл - запрещение появления в структуре подчинения одной детали самой себе - то есть что бы codever в вышестоящей и подчиненной записях был разный

Ругается - Crt1 не является индексом данной таблицы...

В табл есть еще 2 индекса, созданных через конструктор таблиц
codever - на сочетание OWN,sernn и codever
Primary key
25 мар 21, 07:52    [22299659]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
Serg197311
Хочу сделать еще один индекс на табл MAIN1
для начала, это не индекс. Далее - ты не читаешь моих сообщений.
25 мар 21, 09:48    [22299683]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
Панург
. Далее - ты не читаешь моих сообщений.

Да читаю.... Только понять до конца наверное не могу..... Ткни еще раз пож - что я пропустил...
25 мар 21, 12:03    [22299750]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
vmag
Member

Откуда: MP
Сообщений: 3964
Serg197311
Да читаю.... Только понять до конца наверное не могу.....


течь из трубы нужно устранять, а не подставлять тазики...
Не настораживает, что при вставке для контроля соответствия нужно использовать select + join ?

Сообщение было отредактировано: 25 мар 21, 12:06
25 мар 21, 12:05    [22299752]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
Serg197311
Только понять до конца наверное не могу...
Чего там понять? Два предложения и запрос, который я для наглядности мало того, что отформатировал, так ещё и цветом обозначил.
Скобки посчитать не можешь? И разобраться куда какая часть входит?

Сообщение было отредактировано: 25 мар 21, 12:11
25 мар 21, 12:18    [22299758]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
vmag
течь из трубы нужно устранять, а не подставлять тазики...

Так... План у меня такой, вызванный не тем что я не имею другого и более надежного решения, а тем что для его применения надо все поменять в конструкторском отделе сначала, а этого я сделать пока не могу. Если я когда-нибудь я смогу это сделать - у меня уже готово более строгое и надежное решение. Сейчас - вынужден подставлять тазики

vmag
Не настораживает, что при вставке для контроля соответствия нужно использовать select + join ?

проясни, скорее всего действительно не понимаю...
25 мар 21, 12:20    [22299760]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
Панург
Чего там понять? Два предложения и запрос, который я для наглядности мало того, что отформатировал, так ещё и цветом обозначил.
Скобки посчитать не можешь? И разобраться куда какая часть входит?

Черт... И правда - снова скобки... Получилось, опять спасибо!
25 мар 21, 12:26    [22299765]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
vmag
Не настораживает, что при вставке для контроля соответствия нужно использовать select + join ?
А что должно настораживать? Если у тебя иерархические данные, то как ты обеспечишь контроль соответствия некоторых атрибутов?
25 мар 21, 12:34    [22299770]     Ответить | Цитировать Сообщить модератору
 Re: Целостность данных  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
Да блин - сначала ругался что ошибка синтаксиса, а потом стал ругаться что не индекс.... вот я и подумал что не в синтаксисе дело...
25 мар 21, 12:35    [22299772]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Microsoft Access Ответить