【Delphi】简化数据库读写(Helper)
{*****************************************************************
作者:sensor 2025-04-29
功能:
对于FDQuery操作字段按照 简写的格式
使用方法:
原来:
S := FDQuery.FieldByname('name').asString;
I := FDQuery.FieldByname('age').asInteger;
D := FDQuery.FieldByname('birthday').asDatetime;
现在:
S := FDQuery.S['name'];
I := FDQuery.I['age'];
D := FDQuery.D['birthday'];
需要引用这个单元,类似的都可以扩充
******************************************************************}
自己可以根据情况扩展!
{*****************************************************************
作者:sensor 2025-04-29
功能:对于FDQuery操作字段按照 简写的格式使用方法:原来:S := FDQuery.FieldByname('name').asString;I := FDQuery.FieldByname('age').asInteger;D := FDQuery.FieldByname('birthday').asDatetime;现在:S := FDQuery.S['name'];I := FDQuery.I['age'];D := FDQuery.D['birthday'];需要引用这个单元,类似的都可以扩充******************************************************************}unit uTFDQuery_Helper;interface
usesFireDAC.Comp.Client;typeTFDQueryHelper = class helper for TFDQueryfunction GetAsString(FieldName: string): string;procedure SetAsString(FieldName: string; const Value: string);function GetAsInteger(FieldName: string): Integer;procedure SetAsInteger(FieldName: string; const Value: Integer);function GetAsInt64(FieldName: string): Int64;procedure SetAsInt64(FieldName: string; const Value: Int64);function GetAsFloat(FieldName: string): Float32;procedure SetAsFloat(FieldName: string; const Value: Float32);function GetAsBoolean(FieldName: string): Boolean;procedure SetAsBoolean(FieldName: string; const Value: Boolean);function GetAsDateTime(FieldName: string): TDateTime;procedure SetAsDateTime(FieldName: string; const Value: TDateTime);function GetAsCurrency(FieldName: string): Double;procedure SetAsCurrency(FieldName: string; const Value: Double);function GetAsVariant(FieldName: string): Variant;procedure SetAsVariant(FieldName: string; const Value: Variant);public//定义字段读取函数property S[FieldName : string] : string read GetAsString write SetAsString;property I[FieldName : string] : integer read GetAsInteger write SetAsInteger;property I64[FieldName : string] : Int64 read GetAsInt64 write SetAsInt64;property F[FieldName : string] : Float32 read GetAsFloat write SetAsFloat;property B[FieldName : string] : Boolean read GetAsBoolean write SetAsBoolean;property D[FieldName : string] : TDateTime read GetAsDateTime write SetAsDateTime;property C[FieldName : string] : Double read GetAsCurrency write SetAsCurrency;property V[FieldName : string] : Variant read GetAsVariant write SetAsVariant;end;implementation{ TFDQueryHelper }function TFDQueryHelper.GetAsBoolean(FieldName: string): Boolean;
beginResult := Self.FieldByName(FieldName).AsBoolean;
end;function TFDQueryHelper.GetAsCurrency(FieldName: string): Double;
beginResult := Self.FieldByName(FieldName).AsCurrency;
end;function TFDQueryHelper.GetAsDateTime(FieldName: string): TDateTime;
beginResult := Self.FieldByName(FieldName).AsDateTime;
end;function TFDQueryHelper.GetAsFloat(FieldName: string): Float32;
beginResult := Self.FieldByName(FieldName).AsFloat;
end;function TFDQueryHelper.GetAsInt64(FieldName: string): Int64;
beginResult := Self.FieldByName(FieldName).AsLargeInt;
end;function TFDQueryHelper.GetAsInteger(FieldName: string): Integer;
beginResult := Self.FieldByName(FieldName).AsInteger;
end;function TFDQueryHelper.GetAsString(FieldName: string): string;
beginResult := Self.FieldByName(FieldName).AsString;
end;function TFDQueryHelper.GetAsVariant(FieldName: string): Variant;
beginResult := Self.FieldByName(FieldName).AsVariant;
end;procedure TFDQueryHelper.SetAsBoolean(FieldName: string; const Value: Boolean);
beginSelf.FieldByName(FieldName).AsBoolean := Value;
end;procedure TFDQueryHelper.SetAsCurrency(FieldName: string; const Value: Double);
beginSelf.FieldByName(FieldName).AsCurrency := Value;
end;procedure TFDQueryHelper.SetAsDateTime(FieldName: string;const Value: TDateTime);
beginSelf.FieldByName(FieldName).AsDateTime := Value;
end;procedure TFDQueryHelper.SetAsFloat(FieldName: string; const Value: Float32);
beginSelf.FieldByName(FieldName).AsFloat := Value;
end;procedure TFDQueryHelper.SetAsInt64(FieldName: string; const Value: Int64);
beginSelf.FieldByName(FieldName).AsLargeInt := Value;
end;procedure TFDQueryHelper.SetAsInteger(FieldName: string; const Value: Integer);
beginSelf.FieldByName(FieldName).AsInteger := Value;
end;procedure TFDQueryHelper.SetAsString(FieldName: string; const Value: string);
beginSelf.FieldByName(FieldName).AsString := Value;
end;procedure TFDQueryHelper.SetAsVariant(FieldName: string; const Value: Variant);
beginSelf.FieldByName(FieldName).AsVariant := Value;
end;end.
谁用谁知道!