Firedac库集中了数据库行为,并且有许多方法可以正常工作而无需关心数据库类型.实际上,对于大多数常见数据库使用本机驱动程序,Firedac隐藏了语法上的细微差别,允许非常灵活地更改数据库平台.
例如,生成器和autoinc字段很容易检测,CAST和参数工作正常,允许在数据库之间轻松迁移.
如何使用Firedac power来创建新表而无需实例化运行SQL脚本的FDQuery CREATE TABLE?
我希望创建任何Object,并为每个Object Field调用特定的FieldByName,将其记录在数据库中,但首先我需要证明:
到目前为止,这是我的代码:
TRecCustomer = record
Id:integer;
Name:String;
Birthday:TDate;
end;
ICustomer = interface
procedure setCustomerId(Value: Integer);
procedure setCustomerName(Value: String);
procedure SetBirthday(Value: TDate);
procedure Post;
end;
TCustomer = class(TInterfacedObjet, ICustomer)
CustomerObject=TRecCustomer;
procedure setCustomerId(Value: Integer);
procedure setCustomerName(Value: String);
procedure SetBirthday(Value: TDate);
procedure Post;
end;
procedure TCustomer.Post;
begin
if not TableExists('Customer') then CreateTable('Customer');
if not FieldExists('Name') then CreateField('Customer','name',ftString,[],40);
if not FieldExists('Id') then CreateField('Customer','Id',ftInteger,[cAutoInc,cNotNull]);
if not FieldExists('Birthday') then CreateField('Customer','birthday',ftDate);
end;
Run Code Online (Sandbox Code Playgroud)
想象一下程序
CreateTable(Tablename: String)
CreateField(FieldName: …Run Code Online (Sandbox Code Playgroud)