شما باید یک تابع بنویسید که این کار را براتون انجام بده و اون رو در موقع OnExit شی DBEdit فراخونی کنید .
(توجه کنید که در تابع شما باید یک متغییر از نوع TADOQuery تعریف کنید و با اون برای یافتن مقدار تکراری کار کنید تا داده هایی که در سایر اشیا به نمایش گذاشته می شوند به هم نخورند )
من خودم از این تابع را در یکی از پروژه هام استفاده کردم :
function TFrmAddDrivers.SearchDuplicate(const TabelName, FieldName,
Value: string;NumericType:Boolean=False): Boolean;
var
SQLRun:TADQuery;
begin
try
SQLRun:=TADQuery.Create(Self);
SQLRun.Connection:=FrmMain.ADConnection1;
if (not NumericType) then
SQLRun.SQL.Add('Select * From '+TabelName+' Where '+
FieldName +'='+QuotedStr(Value))
else
begin
SQLRun.SQL.Add('Select * From '+TabelName);
SQLRun.Active:=True;
Result:=SQLRun.Locate(FieldName,Value ,[loCaseInsensitive]);
FreeAndNil(SQLRun);
Exit;
end;
SQLRun.Active:=True;
if (SQLRun.RecordCount>0)then
Result:=True
else
Result:=False;
finally
FreeAndNil(SQLRun);
end;
end;
آیا در هنگام Insert یا Edit روی یک جدول ، نوشتن یک کوئری روی همان جدول ، مشکلی ایجاد نخواهد کرد؟
من هنوز مشکلی در این زمینه پیدا نکردم