Вообще все это примерно так выглядит:
Код:
procedure TForm28.Button1Click(Sender: TObject);
Var
B: TBytes;
i: Integer;
begin
SetLength(B, 6);
for i := 0 to Length(B) - 1
do B[i] := Random(255);
ClientDataSet1.Append;
ClientDataSet1.FieldByName('Data').AsBytes := B;
ClientDataSet1.Post;
end;
procedure TForm28.ClientDataSet1CalcFields(DataSet: TDataSet);
Var
B: TBytes;
S: String;
i: Integer;
begin
B := DataSet.FieldByName('Data').AsBytes;
S := '';
for i := 0 to Length(B) - 1
do S := S + IntToHex(B[i], 2);
DataSet.FieldByName('Res').AsString := S;
end;
Но, оказывается по вычисляемому полю нельзя делать ограничение. А посему, прежде чем и дальше давать вам неверные советы, хотелось бы узнать какую БД вы используете? Какой все-же тип поля у вас LogicalName?