powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с созданием ключа по формуле.....
12 сообщений из 12, страница 1 из 1
Проблема с созданием ключа по формуле.....
    #32607604
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для проектируемой распределенной БД остановился на решении с ключами поступить так
- Каждая таблица имеет поле id - обыкновенный автоинкрементный счетчик
- Каждая таблица имеет поле uid (целое 4 байта) = КодФилиала*1E6 + id

Т.е. 4к филиалов и максимум по 1 млн записей на таблицу, по прикиду 1 млн должно хватать на некоторое время....

Проблема в SQL servere прописал - приняло - все Ок.
В аксессе 97/2000 кричит - ненайдено поле [id] ???!!!
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608517
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елки, неужто нет ответов ???
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608534
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
squidВ аксессе 97/2000 кричит - ненайдено поле [id] ???!!!
Замечательно. Сообщение об ошибке приведено. Теперь все кидаемся гадать, что написано в программе.
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608618
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i'm sorry, если не развернул проблему.
Суть :
Исходя из невозможности в Access изменять значение первичного ключа
я делаю такое поле, который вычисляться по формуле

id - счетчик
uid = <Константа>*1E6 + [id] (прописываю в Default Value)
Константа - целое

В результате сохранения таблицы - указанная ранее ошибка. Повторюсь - вMSSQLе все прошло на ура.
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608644
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
squidпрописываю в Default Value
Теперь понятно. Да, в Default Value так нельзя. Но я не понимаю, зачем держать два физических поля, если их значения элементарно вычисляются одно через другое. Я бы завел отдельно маленькую табличку с 1 полем и 1 записью, где и сидела бы эта константа. И если надо где-то в запросе показать <Константа>*1E6 + [id], то просто включаем в запрос эту маленькую табличку и пишем <Константа>*1E6 + [id].
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608648
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот только одного не понял :(
Если поле "вычисляемое", то зачем его хранить в таблице, если можно вычислять (в нужных запросах)?

И насчет того, что нельзя изменять значение PK - это тоже не верное утверждение
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608703
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответы есть. и за это спасибо.

1. Строго говоря изменять счетчик можно, но простите это Вам не "Set Identity Insert ON" одной строкой прописать
2. А Вычисляемое поле uid - это и будет мой ключ. Но уникальный по все распределенной БД + он же и будет учавствовать в связях между таблицами.
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608716
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
squidСтрого говоря изменять счетчик можно
Этого мы не предлагали.

squid2. А Вычисляемое поле uid - это и будет мой ключ. Но уникальный по все распределенной БД + он же и будет учавствовать в связях между таблицами.
Тогда вот другая идея. Заводим поле, как и предполагалось, но ему в DefaultValue пишем только константу. Поле называем КодФилиала. И объявляем ключом (уникальным по всей распределенной БД) эти два поля вместе (КодФилиала и id).
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608723
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И тогда заодно снимается проблема с миллионом, который когда-то будет достигнут.
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608748
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все понятно и просто, но суть то в том что
а) Поле можно будет изменять
б) RelationShips между таблицами как делить в случае с составным первичным ключем А ???
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608755
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
squidа) Поле можно будет изменять
На этот случай есть Security.

squidб) RelationShips между таблицами как делить в случае с составным первичным ключем А ???
Через два поля Б !!!
...
Рейтинг: 0 / 0
Проблема с созданием ключа по формуле.....
    #32608871
squid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да это возможно спасибо. Два поля на ключ в одной таблице. И если таблицы связаны то подчиненная имеет уже 4 поля свой ключ + внешний.
А запросы с объеденением таблиц будет писать одно удовольствие........
В техническом плане это решение, не спорю. Но потом я же с этим и работать буду.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с созданием ключа по формуле.....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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