标签: fdmemtable

如何内部处理过滤后的tDataSet记录以不显示在tDBGrid结果上

在下面的tFDMemTable中,我尝试对ID字段以字母A. A1,A2和结果应为4的记录的值求和。

type
  TForm1 = class(TForm)
    FDMemTable1: TFDMemTable;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

procedure TForm1.FormCreate(Sender: TObject);
var
  _FieldDef: TFieldDef;
begin
  _FieldDef := FDMemTable1.FieldDefs.AddFieldDef;

  _FieldDef.Name := 'ID';
  _FieldDef.DataType := ftString;
  _FieldDef.Size := 5;

  _FieldDef := FDMemTable1.FieldDefs.AddFieldDef;

  _FieldDef.Name :='value';
  _FieldDef.DataType := ftInteger;

  FDMemTable1.CreateDataSet;

  FDMemTable1.Append;

  FDMemTable1.FieldValues['ID'] := 'A1';
  FDMemTable1.FieldValues['value'] := 1;

  FDMemTable1.Append;

  FDMemTable1.FieldValues['ID'] := 'B1';
  FDMemTable1.FieldValues['value'] := 2;

  FDMemTable1.Append;

  FDMemTable1.FieldValues['ID'] := 'A2';
  FDMemTable1.FieldValues['value'] := 3;

  FDMemTable1.Append;

  FDMemTable1.FieldValues['ID'] := 'B2';
  FDMemTable1.FieldValues['value'] …
Run Code Online (Sandbox Code Playgroud)

delphi tdataset firedac fdmemtable

2
推荐指数
1
解决办法
127
查看次数

加载现有数据时向 FDMemTable 添加新字段

我正在使用TFDMemTable,我创建了一个数据集并用数据填充我的表,然后用于FDMemTable.saveToFile保存我的数据。
现在的问题是,我如何Field向已保存的数据添加新数据并使用默认值填充所有记录?
我尝试添加新的Field内容FDMemTable,然后加载信息,希望它会使用它自动填充每个字段FieldName以及带有空白的新字段,但我收到一条错误消息:`------------ ----------------

调试器异常通知

项目 Project1.exe 引发异常类 EDatabaseError 并显示消息“未找到字段‘Episode’”。

中断 继续 帮助

``
我该如何解决这个问题?是否有解决方法可以将具有默认值的新字段添加到现有数据中?
这是一个测试用例:

// here is a simple example, i have a few fields
FDMemTable1.FieldDefs.Add('ID', ftInteger, 0, false);
FDMemTable1.FieldDefs.Add('name', ftString, 30, false);
FDMemTable1.FieldDefs.Add('QualityID', ftInteger, 0, false);

FDMemTable1.CreateDataSet;

// i fill the the table with some value
FDMemTable1.Open;
FDMemTable1.AppendRecord([1, 'Movie1', 1]);
FDMemTable1.AppendRecord([2, 'Movie2', 2]);
FDMemTable1.AppendRecord([3, 'Movie3', 1]);

// after seeing the value on the grid, i …
Run Code Online (Sandbox Code Playgroud)

delphi firedac fdmemtable

0
推荐指数
1
解决办法
9928
查看次数

标签 统计

delphi ×2

fdmemtable ×2

firedac ×2

tdataset ×1