Создание уникального поля

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Procedure TableNewRecord(FieldName: String;

Var DataSet: TDataSet);

Var

NumRec: Integer;

bm: TBookmark;

Begin

with DataSet do

begin

NumRec := Succ(RecordCount);

if State = dsInsert then

Post;

bm := GetBookMark;

DisableControls;

while Locate(FieldName, NumRec, []) and (NumRec > 0) do

Dec(NumRec);

if NumRec = 0 then

begin

NumRec := RecordCount;

while Locate(FieldName, NumRec, []) do

Inc(NumRec);

end;

GotoBookmark(bm);

FreeBookmark(bm);

Edit;

FieldByName(FieldName).AsInteger := NumRec;

Post;

EnableControls;

end;

End;

{/codecitation}

Добавить комментарий