{*****************************************************************
作者: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'];
需要引用这个单元,类似的都可以扩充
******************************************************************}
自己可以根据情况扩展!
Delphi
{*****************************************************************
作者: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
uses
FireDAC.Comp.Client;
type
TFDQueryHelper = class helper for TFDQuery
function 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;
begin
Result := Self.FieldByName(FieldName).AsBoolean;
end;
function TFDQueryHelper.GetAsCurrency(FieldName: string): Double;
begin
Result := Self.FieldByName(FieldName).AsCurrency;
end;
function TFDQueryHelper.GetAsDateTime(FieldName: string): TDateTime;
begin
Result := Self.FieldByName(FieldName).AsDateTime;
end;
function TFDQueryHelper.GetAsFloat(FieldName: string): Float32;
begin
Result := Self.FieldByName(FieldName).AsFloat;
end;
function TFDQueryHelper.GetAsInt64(FieldName: string): Int64;
begin
Result := Self.FieldByName(FieldName).AsLargeInt;
end;
function TFDQueryHelper.GetAsInteger(FieldName: string): Integer;
begin
Result := Self.FieldByName(FieldName).AsInteger;
end;
function TFDQueryHelper.GetAsString(FieldName: string): string;
begin
Result := Self.FieldByName(FieldName).AsString;
end;
function TFDQueryHelper.GetAsVariant(FieldName: string): Variant;
begin
Result := Self.FieldByName(FieldName).AsVariant;
end;
procedure TFDQueryHelper.SetAsBoolean(FieldName: string; const Value: Boolean);
begin
Self.FieldByName(FieldName).AsBoolean := Value;
end;
procedure TFDQueryHelper.SetAsCurrency(FieldName: string; const Value: Double);
begin
Self.FieldByName(FieldName).AsCurrency := Value;
end;
procedure TFDQueryHelper.SetAsDateTime(FieldName: string;
const Value: TDateTime);
begin
Self.FieldByName(FieldName).AsDateTime := Value;
end;
procedure TFDQueryHelper.SetAsFloat(FieldName: string; const Value: Float32);
begin
Self.FieldByName(FieldName).AsFloat := Value;
end;
procedure TFDQueryHelper.SetAsInt64(FieldName: string; const Value: Int64);
begin
Self.FieldByName(FieldName).AsLargeInt := Value;
end;
procedure TFDQueryHelper.SetAsInteger(FieldName: string; const Value: Integer);
begin
Self.FieldByName(FieldName).AsInteger := Value;
end;
procedure TFDQueryHelper.SetAsString(FieldName: string; const Value: string);
begin
Self.FieldByName(FieldName).AsString := Value;
end;
procedure TFDQueryHelper.SetAsVariant(FieldName: string; const Value: Variant);
begin
Self.FieldByName(FieldName).AsVariant := Value;
end;
end.
谁用谁知道!