// 這個不需要再查詢數據庫啦. class procedure TDBFunction.CheckRepeatFieldValue(aField: TField); var lInitValue: string; begin if not (aField.DataSet is TADODataSet) then exit; with TADODataSet.Create(nil) do try if aField.DataSet.State in [dsEdit, dsInsert] then aField.DataSet.Post; Clone(TADODataSet(aField.DataSet)); Sort := aField.FieldName + ' ASC'; First; while not Eof do begin if lInitValue = FieldByName(aField.FieldName).AsString then showmessage('重復') else lInitValue := FieldByName(aField.FieldName).AsString; Next; end; finally Free; end; end;
...
SHOMESSAGE('重复')提示....
...
// 這個不需要再查詢數據庫啦.
class procedure TDBFunction.CheckRepeatFieldValue(aField: TField);
var
lInitValue: string;
begin
if not (aField.DataSet is TADODataSet) then exit;
with TADODataSet.Create(nil) do
try
if aField.DataSet.State in [dsEdit, dsInsert] then aField.DataSet.Post;
Clone(TADODataSet(aField.DataSet));
Sort := aField.FieldName + ' ASC';
First;
while not Eof do
begin
if lInitValue = FieldByName(aField.FieldName).AsString then
showmessage('重復')
else
lInitValue := FieldByName(aField.FieldName).AsString;
Next;
end;
finally
Free;
end;
end;