Файл: ...\Samples\Solution\Db\Newid.scx
Этот пример использует хранимую процедуру базы данных для предоставления значения по умолчанию для первичного ключа таблицы.
Для создания уникального ID по умолчанию
-
Добавьте в базу данных отдельную таблицу, в которой будет храниться следующий ID для каждой таблицы базы данных.
Таблица в образце названа как Ids.dbf. Она содержит два поля:
Table C(10), NextID I
. -
В хранимых процедурах базы данных, создайте функцию, которая вернет значение последующего ID из таблицы ID.
Эта процедура в образце именована как
NewID
. Код для этой функции приведен ниже. -
Установите значение по умолчанию для поля в имя этой функции.
Хранимая процедура NewID
![]() | |
---|---|
FUNCTION NewID(tcAlias) LOCAL lcAlias, lnID, lcOldReprocess, lnOldArea lnOldArea = SELECT() IF PARAMETERS() < 1 lcAlias = UPPER(ALIAS()) ELSE lcAlias = UPPER(tcAlias) ENDIF lcOldReprocess = SET('REPROCESS') * Заблокируем, пока пользователь не нажмет Esc SET REPROCESS TO AUTOMATIC IF !USED("IDS") USE newid!ids IN 0 ENDIF SELECT ids IF SEEK(lcAlias, "Ids", "table") IF RLOCK() lnID = ids.nextid REPLACE ids.nextid WITH ids.nextid + 1 UNLOCK ENDIF ENDIF SELECT (lnOldArea) SET REPROCESS TO lcOldReprocess RETURN lnID ENDFUNC |