|
уникальная уникальность
|
|||
---|---|---|---|
#18+
Привет народ. Есть хотелка реализовать следующее, два поля - текстовое и логическое. Текстовое и логический 0 повторятся могут, а текстовое и логический 1 только в одном экземпляре. текстбултекст0текст0текст1текст1 - ошибка Но сдается мне, просто индексом тут не обойтись, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 14:02 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgik, Так. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 14:07 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
В рамках MS Access - нет. И триггеры (даже если версия позволяет) не помогут - в них можно использовать только скалярные функции, ни пользовательские, ни по подмножеству (типа DCount) недопустимы. Так что только контроль на уровне интерфейса. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 14:27 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgikНо сдается мне, просто индексом тут не обойтись, так? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Как-то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 15:59 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
этот код только установить ограничение, далее само работать будет... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 16:01 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
а CHECK это для какой версии? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 16:40 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgikа CHECK это для какой версии?Версии чего? Ты думаешь я историк? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 19:27 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgikТекстовое и логический 0 повторятся могут, а текстовое и логический 1 только в одном экземпляре. возможно суммировала бы столбец БУЛ, сумма должна быть более -2 , т.е 0 или -1 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 20:11 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
Панургdidgikа CHECK это для какой версии?Версии чего? Ты думаешь я историк? Аксесса или MS jet. Я попробовал в аксесе запустить этот запрос через мастер запросов, он ругнулся на check ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 20:15 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgik, а ты думаешь зачем я код написал? Можешь попробовать переключить SQL на ANSI 92, но ради установки одного ограничения я бы этого делать не стал... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 03:56 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgikзапустить этот запрос через мастер запросовqbe может создать не все запросы... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 04:05 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
Панургdidgik, а ты думаешь зачем я код написал? Можешь попробовать переключить SQL на ANSI 92, но ради установки одного ограничения я бы этого делать не стал... Ага. Переключил на ANSI 92 запрос сработал. И тут возникло 2 вопроса. 1. Чем плох ANSI 92 2. Как этот Cheсk должен сработать? Я попробовал сделать доблирующие поля, получилось и никаких ошибок не выдало. Тут, наверно, надо озвучить, что я работаю с базой MS jet через АДО, а акссес использую для проверок и экспериментов, а потом все перевожу в код через АДО. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 15:39 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgik, 1. Плох тем, что иногда Access закрывается крашем да так, что файл потом невозможно восстановить. Правда такое случается не так часто, но бывает. Сам восстанавливал свои базы через бекапы в таких случаях, но не иначе. 2. Идея Панурга верная, только чуть-чуть по другому надо было написать. Нажмите Ctrl+G и там 1 раз запустите вот такой код: Код: vbnet 1.
Как только 2 раза попробуете ввести TRUE, то получите ошибку, в тексте которого и будет название констрейнта "Нельзя_2_раза_TRUE". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 15:50 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
а почему нельзя сделать уникальный индекс по двум полям? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 15:56 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
Konst_Oneа почему нельзя сделать уникальный индекс по двум полям? не по ТЗ 2 didgik Выше уже предлагали решать на уровне интерфейса, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 16:10 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
Konst_Oneа почему нельзя сделать уникальный индекс по двум полям?Наверное, потому. чтоdidgikТекстовое и логический 0 повторятся могут, а текстовое и логический 1 только в одном экземпляре. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 16:26 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
bubucha2 didgik Выше уже предлагали решать на уровне интерфейса, не? Предлагали, но это было б слишком просто. В итоге год панурга прокатил, теперь надо внедрить в прогу и посмотреть как будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 16:28 |
|
уникальная уникальность
|
|||
---|---|---|---|
#18+
didgikЯ попробовал сделать доблирующие поля, получилось и никаких ошибок не выдало.Не недо грязи! всё работает. Условие - нельзя текстовое поле Null. didgikКак этот Cheсk должен сработать?Мне думается это видно. Условие - ни одной записи не должен выводить запрос. Почитать бы неплохо литературку. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 18:36 |
|
|
start [/forum/topic.php?fid=45&msg=39823566&tid=1610659]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 270ms |
0 / 0 |