jjw

写给自己的博客。 记录学习的点滴以备查。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

FireDAC内部初探

Posted on 2015-06-07 11:19  jjw  阅读(1035)  评论(0编辑  收藏  举报
procedure TForm1.Button1Click(Sender: TObject);
var
  FCommIntf: IFDPhysCommand;  //FireDAC.Phys.Intf
  FTab: TFDDatSTable;         //FireDAC.DatS
begin
  FTab := TFDDatSTable.Create;
  FDConnection1.ConnectionIntf.CreateCommand(FCommIntf);
  FCommIntf.CommandText := 'select * from zfxx';
  //FCommIntf.Prepare('select * from tjzfdb.dbo.zfxx');
  FCommIntf.Define(FTab);
  //FCommIntf.Open;
  FCommIntf.Fetch(FTab);

  Caption := FTab.Rows.Count.ToString();
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  oCommIntf: IFDPhysCommand;
  oSchAdapt: IFDDAptSchemaAdapter;
  oAdapt: IFDDAptTableAdapter;  //FireDAC.DApt.Intf                             U
begin
  {
    uses
      FireDAC.Stan.Factory, FireDAC.DApt;
  }
  //FDCreateInterface(IFDDAptSchemaAdapter, oSchAdapt);
  //oAdapt := oSchAdapt.TableAdapters.Add;
  //上面的2步可以用下面一行代码代替
  FDCreateInterface(IFDDAptTableAdapter, oAdapt);
  FDConnection1.ConnectionIntf.CreateCommand(oCommIntf);
  if oAdapt.SelectCommand=nil then
    oAdapt.SelectCommand := oCommIntf;
  oCommIntf.CommandText := 'select * from zfxx';
  oAdapt.Define;
  oAdapt.Fetch(True);
  Caption := oAdapt.DatSTable.Rows.Count.ToString();
end;

基本上是从DEMO上照搬的,初步理解内部情况。