小编Ric*_*tor的帖子

使用没有SQL脚本的firedac创建表

Firedac库集中了数据库行为,并且有许多方法可以正常工作而无需关心数据库类型.实际上,对于大多数常见数据库使用本机驱动程序,Firedac隐藏了语法上的细微差别,允许非常灵活地更改数据库平台.
例如,生成器和autoinc字段很容易检测,CAST和参数工作正常,允许在数据库之间轻松迁移.

如何使用Firedac power来创建新表而无需实例化运行SQL脚本的FDQuery CREATE TABLE

我希望创建任何Object,并为每个Object Field调用特定的FieldByName,将其记录在数据库中,但首先我需要证明:

  1. 如果已创建表
  2. 如果已创建字段
  3. 如果已创建记录

到目前为止,这是我的代码:

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)

database delphi design-patterns firedac

3
推荐指数
1
解决办法
2071
查看次数

标签 统计

database ×1

delphi ×1

design-patterns ×1

firedac ×1