powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Целостность данных
25 сообщений из 75, страница 3 из 3
Целостность данных
    #40055393
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Я начальник технологического отдела

С этого и надо было начинать.
Пункт 1- Начальник всегда прав.
Пункт 2 - Если начальник не прав , смотри пункт 1 .
...
Рейтинг: 0 / 0
Целостность данных
    #40055580
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Check Constraint это контрольное ограничение на ключ, поле
есть и на таблицу
...
Рейтинг: 0 / 0
Целостность данных
    #40055581
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Панург, дайте пож почту какую-нибудь...
три таблицы с тремя (или сколько там нужно для иллюстрации) полями и немного фейковых данных можно и сюда положить.
...
Рейтинг: 0 / 0
Целостность данных
    #40055587
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Serg197311
Панург, дайте пож почту какую-нибудь...
три таблицы с тремя (или сколько там нужно для иллюстрации) полями и немного фейковых данных можно и сюда положить.

Выкладываю
...
Рейтинг: 0 / 0
Целостность данных
    #40055593
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Выкладываю
попробуй
...
Рейтинг: 0 / 0
Целостность данных
    #40055624
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Панург#22297855]
Serg197311
Выкладываю
попробуй[/quoВ] примере - ограничение накладывается. В рабочей базе - та же ошибка что я на первой стр писал.Буду разбираться. Спасибо огромное в любом случае!
...
Рейтинг: 0 / 0
Целостность данных
    #40055627
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
В рабочей базе - та же ошибка что я на первой стр писал.Буду разбираться.
на первой странице ( 22297095 ) ошибка из-за непарности скобок. Про само условие умолчу.
С этим ограничением в примере всё просто - пока соблюдается условие всё будет сохраняться и добавляться. Возьми запрос и посмотри, он не должен выводить записи.
...
Рейтинг: 0 / 0
Целостность данных
    #40055629
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311, кстати, в твоём примере есть возможность получить срабатывание ограничения при добавлении или редактировании записи, если в существующих и уже связанных в spztmp записях MAIN1 или tprcs позже сменят значение codever.
...
Рейтинг: 0 / 0
Целостность данных
    #40055764
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Serg197311, кстати, в твоём примере есть возможность получить срабатывание ограничения при добавлении или редактировании записи, если в существующих и уже связанных в spztmp записях MAIN1 или tprcs позже сменят значение codever.

В существующих обработках на данный момент нигде не предусмотрено изменений полей codever - ни в MAIN1 ни в tprcs.
Все изменения проводятся через удаление записи и добавление новой(естественно - с учетом связей). В spztmp вообще ни одно поле не изменяется - только удаление или добавление
Так что если ограничение сработает на добавление записи в spztmp - то это будет именно то, чего и добивались.
...
Рейтинг: 0 / 0
Целостность данных
    #40055781
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все проверил, допилил - БИНГО! Работает!!!!
обкатаю на резервных копиях, потом подумаю о вставке в рабочую базу!
Одно не могу понять..... почему
Код: sql
1.
WHERE MAIN1.codever<>tprcs.codever=0

- работает,
а
Код: sql
1.
WHERE MAIN1.codever<>tprcs.codever)=true

- нет.....
...
Рейтинг: 0 / 0
Целостность данных
    #40055804
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Одно не могу понять..... почему
Код: sql
1.
WHERE MAIN1.codever<>tprcs.codever=0


- работает,
а
Код: sql
1.
WHERE MAIN1.codever<>tprcs.codever)=true


- нет.....
но вообще то
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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 записей, если нет, то сработает запрет. Обрати внимание на скобки.
...
Рейтинг: 0 / 0
Целостность данных
    #40055812
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем - спасибо огромное Панургу! Ограничение работает точно так как я и хотел! При попытке добавить запись с неправильным codever в spztmp - ругается! При попытке изменить(хоть такого по логике быть никак не должно) неправильным образом - то же ругается!
Зы - на скобки конечно обратил уже внимание, это сюда она попала случайно, пробовал я без нее
...
Рейтинг: 0 / 0
Целостность данных
    #40055857
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
При попытке добавить запись с неправильным codever в spztmp - ругается!


В spztmp таки добавили поле codever...
Я когда схему открыл из примера 2, увидел в В spztmp поле codever, дальше смотреть не стал...
Оказывается все-таки налепили констрейнов, а просто связи сделать, не ???
Зачем козе баян ?
...
Рейтинг: 0 / 0
Целостность данных
    #40055864
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

не, не туда глянул... не добавили, сорри...
мдя... поля на схеме нечто, Панург немного переставил местами таблицы, я даже этого не заметил,
думал что проблемная внизу, а она уже справа...
...
Рейтинг: 0 / 0
Целостность данных
    #40055875
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Панург немного переставил местами таблицы
ничего я не переставлял
...
Рейтинг: 0 / 0
Целостность данных
    #40055883
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Serg197311
При попытке добавить запись с неправильным codever в spztmp - ругается!


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

Да это я опять не совсем внятно написал....С неправильным codever надо было написать с разными codever в MAIN1 и tprcs...
Извините уж.....
...
Рейтинг: 0 / 0
Целостность данных
    #40056783
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург, снова вопрос...
Хочу сделать еще один индекс на табл MAIN1
Код: sql
1.
2.
3.
4.
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
...
Рейтинг: 0 / 0
Целостность данных
    #40056793
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Хочу сделать еще один индекс на табл MAIN1
для начала, это не индекс. Далее - ты не читаешь моих сообщений.
...
Рейтинг: 0 / 0
Целостность данных
    #40056842
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
. Далее - ты не читаешь моих сообщений.

Да читаю.... Только понять до конца наверное не могу..... Ткни еще раз пож - что я пропустил...
...
Рейтинг: 0 / 0
Целостность данных
    #40056843
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Да читаю.... Только понять до конца наверное не могу.....


течь из трубы нужно устранять, а не подставлять тазики...
Не настораживает, что при вставке для контроля соответствия нужно использовать select + join ?
...
Рейтинг: 0 / 0
Целостность данных
    #40056847
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Только понять до конца наверное не могу...
Чего там понять? Два предложения и запрос, который я для наглядности мало того, что отформатировал, так ещё и цветом обозначил.
Скобки посчитать не можешь? И разобраться куда какая часть входит?
...
Рейтинг: 0 / 0
Целостность данных
    #40056848
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
течь из трубы нужно устранять, а не подставлять тазики...

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

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

проясни, скорее всего действительно не понимаю...
...
Рейтинг: 0 / 0
Целостность данных
    #40056853
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Чего там понять? Два предложения и запрос, который я для наглядности мало того, что отформатировал, так ещё и цветом обозначил.
Скобки посчитать не можешь? И разобраться куда какая часть входит?

Черт... И правда - снова скобки... Получилось, опять спасибо!
...
Рейтинг: 0 / 0
Целостность данных
    #40056857
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Не настораживает, что при вставке для контроля соответствия нужно использовать select + join ?
А что должно настораживать? Если у тебя иерархические данные, то как ты обеспечишь контроль соответствия некоторых атрибутов?
...
Рейтинг: 0 / 0
Целостность данных
    #40056859
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да блин - сначала ругался что ошибка синтаксиса, а потом стал ругаться что не индекс.... вот я и подумал что не в синтаксисе дело...
...
Рейтинг: 0 / 0
25 сообщений из 75, страница 3 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Целостность данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]