Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Сжатие базы Access и связанные таблицы   Найти похожие ветки 

 
DVM ©   (2006-06-13 15:57) [0]

Для примера, путь имеем следующие таблицы:

Первая:

IDUser | UserNаme|
----------------------
5        | Вася       |
----------------------
8        | Петя       |

Вторая:

IDUser | Что-то еще |
----------------------
5        | что-то 1     |
----------------------
5        | что-то 2     |
----------------------
8        | что-то 3     |
----------------------

и.т.д.

IDUser в первой таблице - автоинкремент

Сжимаю базу. Естесственно, поле UserID у Васи станет 1, а у Пети 2. После этого связь будет нарушена.

Что лучше сделать для сохранения целостности данных?


 
DVM ©   (2006-06-13 15:58) [1]

Общение с базой через ADO


 
Sergey13 ©   (2006-06-13 16:07) [2]

>Сжимаю базу. Естесственно, поле UserID у Васи станет 1, а у Пети 2. После этого связь будет нарушена.

Я не знаток Аксеса, но, ИМХО, это неестественно. Даже противоестественно.


 
DVM ©   (2006-06-13 16:09) [3]


> Я не знаток Аксеса, но, ИМХО, это неестественно. Даже противоестественно.

Что именно? Сжатие? Или изменение индексов?
Так и будет. Причем если в самой Access пометить поля как связанные, все сохраняется нормально. Индексы исправляются во всех связанных таблицах.


 
DVM ©   (2006-06-13 16:10) [4]

Меня бы устроило сжатие без изменения индексов вообще.
Уточню: UserID в терминах Access это ключевое поле с автоинкрементом.


 
Sergey13 ©   (2006-06-13 16:40) [5]

2[3] DVM ©   (13.06.06 16:09)
> Причем если в самой Access пометить поля как связанные, все сохраняется нормально.
Ну дык пометь. Что мешает то?


 
sniknik ©   (2006-06-13 17:45) [6]

> Естесственно, поле UserID у Васи станет 1, а у Пети 2.
не естественно. никакое сжатие не нарушает значений уже внесенных данных, хоть поле с автоинкрементом хоть без, с пометкои и без нее.

> Меня бы устроило сжатие без изменения индексов вообще.
индексы меняются т.к. переформируются страници с данными, все "поджимается", но тебя это волновать не должно, где бы индексы не лежали данные будут те же.


 
DVM ©   (2006-06-13 17:56) [7]


> не естественно. никакое сжатие не нарушает значений уже
> внесенных данных, хоть поле с автоинкрементом хоть без,
> с пометкои и без нее.

Даже не знаю, что сказать. Я потому и задал вопрос, что удивляет поведение Access. Может это глюки Acccess на конкретной машине, но происходит так как я описал. Странно. Попробую потом в другом месте.


 
sniknik ©   (2006-06-13 18:00) [8]

> Может это глюки Acccess на конкретной машине, но происходит так как я описал.
скорее это глюки того(/чего) ты не описал, а именно, что ты называеш "сжатием бызы" и как ты это выполняеш.


 
DVM ©   (2006-06-13 18:03) [9]


> а именно, что ты называеш "сжатием бызы" и как ты это выполняеш.

Главное меню Access: Сервис > Служебные программы > Сжать и восстановить базу данных.


 
sniknik ©   (2006-06-13 19:57) [10]

> Главное меню Access: Сервис > ...
не должно, пробуй еще.
единственное возможно у тебя старый access/база, до 2000-го (95/97) были признано глючными, "глюкала" сама база, т.е. если в меню в служебных -> преобразование, у тебя закрыто access 97(т.е. это текуший формат получается) и открыто access 2000/2002 то преобразуй базу в более новую и пробуй потом.
ну и структуру приводи если не получится. (чтобы повторить и проверить)



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.15 c
6-1144049407
nikNil
2006-04-03 11:30
2006.08.20
Как получить список открытых портов


2-1154026953
ronyn
2006-07-27 23:02
2006.08.20
Дата создания файла - сравнить


6-1144050156
Kryakozyablik
2006-04-03 11:42
2006.08.20
Авторизация с использованием Indy.


1-1151975555
dwar
2006-07-04 05:12
2006.08.20
indy 9.0.18 проблеммы установки


2-1154326119
rasperepodvipodvert
2006-07-31 10:08
2006.08.20
Frame vs Delphi