Dataset’teki Verinin, kaydedilmeden önce( TBL_UserBeforePost) doğrulanması için, TField class’ına Eklenti olarak yazdığım fonksiyonlardır.
//ismail Kocacan
unit uValidation;
interface
uses
SysUtils, Variants, Classes, DB,RegularExpressions;
type
TFieldValidatorHelper=class Helper for TField
public
function IsMailFormat:Boolean;
function IsIPFormat:Boolean;
function IsURLFormat:Boolean;
end;
implementation
{ TFieldValidatorHelper }
function TFieldValidatorHelper.IsIPFormat: Boolean;
begin
Result:=TRegEx.Create('(([0-9]){1,3}.){1,3}[0-9]{1,3}').IsMatch(Trim(Text));
end;
function TFieldValidatorHelper.IsMailFormat: Boolean;
begin
Result:=TRegEx.Create('^([\w\.-]{1,64}@[\w\.-]{1,252}\.\w{2,4})$').IsMatch(Trim(Text));
end;
function TFieldValidatorHelper.IsURLFormat: Boolean;
begin
Result:=TRegEx.Create('^(https?)://[^\s/$.?#].[^\s]*$').IsMatch(Trim(Text));
end;
end.
uValidation unit’ini projenize dahil edittikden sonra;
TQuery nesnesinin BeforePost event’inde aşağıdaki gibi bir doğrulama yapabilirsiniz.
unit uMain;
.
.
.
implementation
uses uValidation;
procedure TfrmMain.TBL_UserBeforePost(DataSet: TDataSet);
begin
if not DataSet.FieldByName('EMAIL').IsMailFormat then
begin
raise Exception.Create('Geçersiz Mail Formatı');
Abort;
end;
if not DataSet.FieldByName('IP').IsIPFormat then
begin
raise Exception.Create('Geçersiz IP Formatı');
Abort;
end;
end;
|