powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Автозаполнение
5 сообщений из 5, страница 1 из 1
Автозаполнение
    #33804183
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дамы и господа, у меня есть вопрос.

Ситуация такова. В таблице есть поле CODE и какие-нить другие много-много. Очевидно, что CODE будет уникальным и как бы сам инкрементироваться. В процессе эксплуатации записи будут удаляться, а вот поле CODE хотелось бы иметь возможность иногда (хотя бы по команде, если не автоматически) упорядочивать. Я имею ввиду пронумеровать все записи по порядку в поле CODE и при этом, естесственно, не потерять целостность, т.е. в связанных таблицах внести соответствующие корректировки (т.к. ясен барабан по этому полю таблица связана с другими). Можно ли это сделать автоматически? (Если я не ошибаюсь, то MS Access позволяет так извращаться.)
Ну очень не хочется делать этого в рукопашную...

Заранее благодарю.
...
Рейтинг: 0 / 0
Автозаполнение
    #33804224
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно. Посмотри в HELP по свойству поля AutoIncrement и функции GETAUTOINCVALUE
С уважением, Алексей
...
Рейтинг: 0 / 0
Автозаполнение
    #33804501
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе сделать можно. Для этого надо:

-) Ни в коем случае не использовать Integer-Autoincrement, поскольку такие поля по определению Read-Only. Необходимо написать собственную функцию Default для этих ключевых полей. Ищи на этом форуме по ключевому слову "NewId"

-) Настроить Referential Integrities на Update по типу Cascade для связанных таблиц

Но вообще-то, этого делать не надо.

Назначение ключевого поля - это однозначная идентификация записи. Все! Какое при этом оно имеет конкретное значение - не играет никакой роли. Главное, точбы оно было уникальным.

Если требует добавить какие-то еще функции, то вводи дополнительные поля. Насколько я понимаю, цель данной перенумерации - это простое упорядочивание записей. Ну и введи для этой цели дополнительное НЕ ключевое поле.
...
Рейтинг: 0 / 0
Автозаполнение
    #33807319
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пасиб
...
Рейтинг: 0 / 0
Автозаполнение
    #33813056
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Владимир!

> Но вообще-то, этого делать не надо.

В общем и целом согласен :)

> Назначение ключевого поля - это однозначная идентификация записи. Все!
> Какое при этом оно имеет конкретное значение - не играет никакой роли.
> Главное, точбы оно было уникальным.

Иногда может возникнуть другая проблема - переполнение разрядной сетки (
например очень большая интенсивность операций вставки/удаления записей) - и
в конце концов мы выйдем за допустимый диапазон значений Integer поля -
именно тогда и придётся сделать глобальную перенумерацию и переставить
"счётчик" на новый Max - но это умозрительная ситуация - если уж не хватает
2 с лишком миллиардов номеров, то видимо стоит подумать о чём-то посерьёзнее
dbf-ов...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Автозаполнение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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