dac FDMemTable

Posted tobetterlife

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dac FDMemTable相关的知识,希望对你有一定的参考价值。

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, FireDAC.Stan.Intf, FireDAC.Stan.Option,
  FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf,
  FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.UI.Intf,
  FireDAC.VCLUI.Wait, FireDAC.Phys.MSSQLDef, FireDAC.Stan.Def,
  FireDAC.Stan.Pool, FireDAC.Phys, FireDAC.Phys.MSSQL, cxGraphics, cxControls,
  cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack, dxSkinBlue,
  dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide,
  dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
  dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
  dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
  dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
  dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
  dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
  dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
  dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
  dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters,
  dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, cxStyles,
  dxSkinscxPCPainter, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit,
  cxNavigator, Data.DB, cxDBData, FireDAC.Comp.Client, cxGridLevel, cxClasses,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, FireDAC.Phys.ODBCBase, FireDAC.Comp.UI, FireDAC.Comp.DataSet,
  Vcl.StdCtrls, FireDAC.Stan.StorageXML, FireDAC.Stan.StorageJSON,
  FireDAC.Stan.StorageBin;

type
  TForm1 = class(TForm)
    FDQuery1: TFDQuery;
    FDGUIxWaitCursor1: TFDGUIxWaitCursor;
    FDPhysMSSQLDriverLink1: TFDPhysMSSQLDriverLink;
    tv: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    ds1: TDataSource;
    con: TFDConnection;
    btn1: TButton;
    tvColumn1: TcxGridDBColumn;
    tvColumn2: TcxGridDBColumn;
    btn2: TButton;
    btn3: TButton;
    FDMemTable1: TFDMemTable;
    FDStanStorageXMLLink1: TFDStanStorageXMLLink;
    FDMemTable2: TFDMemTable;
    FDStanStorageJSONLink1: TFDStanStorageJSONLink;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//select * from tb_kswh
procedure TForm1.btn1Click(Sender: TObject);
begin
//  with FDQuery1  do
//  begin
//    close;
//    sql.Text:= ‘select sksbm,sksmc from tb_kswh‘;
//    open;
//  end;

//FDQuery1.Connection:= nil;

//  FDQuery1.Close;
//  FDQuery1.FieldDefs.Clear;
//  FDQuery1.FieldDefs.Add(‘sksbm‘,ftString,50);
//  FDQuery1.FieldDefs.Add(‘sksmc‘,ftString,50);
//  FDQuery1.CreateDataSet;

  FDMemTable1.Close;
  FDMemTable1.FieldDefs.Clear();
  FDMemTable1.FieldDefs.Add(sksbm, ftString, 50, false);
  FDMemTable1.FieldDefs.Add(sksmc, ftString, 50, false);
  FDMemTable1.CreateDataSet;


//  FDMemTable1.Append;
//  FDMemTable1.FieldByName(‘sksbm‘).AsString:= ‘1‘;
//  FDMemTable1.FieldByName(‘sksmc‘).AsString:= ‘1aa‘;
//  FDMemTable1.Append;
//  FDMemTable1.FieldByName(‘sksbm‘).AsString:= ‘2‘;
//  FDMemTable1.FieldByName(‘sksmc‘).AsString:= ‘2bb‘;
//  FDMemTable1.Post;
  FDMemTable1.AppendRecord([1, 1cc]);
  FDMemTable1.AppendRecord([2, 2cc]);
  FDMemTable1.AppendRecord([3, 3cc]);
  //FDMemTable1.Post;
  FDMemTable1.SaveToFile(a.xml);
   FDQuery1.LoadFromFile(a.xml);
  FDMemTable2.LoadFromFile(a.xml);
  ds1.DataSet:= FDMemTable1;
end;

procedure TForm1.btn2Click(Sender: TObject);
var
  i:Integer;
begin
//  tv.OptionsData.Editing:= true;
//  FDQuery1.Edit;
//  con.StartTransaction;
  FDMemTable1.Delete;
  FDMemTable1.SaveToFile(b.xml);
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
//  FDQuery1.ApplyUpdates(0);//must
//  //FDQuery1.CommitUpdates; //no use
//  con.Commit;

  FDMemTable1.LoadFromFile(b.xml);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//  FDQuery1.CachedUpdates:= True;
//  tv.OptionsData.Editing:= false;
end;

end.

以上是关于dac FDMemTable的主要内容,如果未能解决你的问题,请参考以下文章

FDMemTable的详细使用方法

FireDAC 下FDMEMTable的的字段自动获取

FireDAC 下FDMEMTable的的字段自动获取

使用fdmemTable来代替clientDataset,解决MySQL5.6(含)以上版本用cds多次更新时的错误

[linux][c/c++]代码片段01

[linux][c/c++]代码片段02