Delphi 什么是TFDDatSRow?
我使用Delphi10.3。我尝试创建一个内存数据库,向其中添加数据并在其中查找数据 我参考其他人的代码编写了以下代码,它运行良好Delphi 什么是TFDDatSRow?,delphi,firedac,fdmemtable,Delphi,Firedac,Fdmemtable,我使用Delphi10.3。我尝试创建一个内存数据库,向其中添加数据并在其中查找数据 我参考其他人的代码编写了以下代码,它运行良好 procedure TForm1.DataAppendFind; var _FieldDef: TFieldDef; _FDDatsRow: TFDDatSRow; i: Integer; begin _FieldDef := FDMemTable1.FieldDefs.AddFieldDef; _FieldDef.Name := 'field
procedure TForm1.DataAppendFind;
var
_FieldDef: TFieldDef;
_FDDatsRow: TFDDatSRow;
i: Integer;
begin
_FieldDef := FDMemTable1.FieldDefs.AddFieldDef;
_FieldDef.Name := 'field1';
_FieldDef.DataType := ftInteger;
_FieldDef := FDMemTable1.FieldDefs.AddFieldDef;
_FieldDef.Name :='field2';
_FieldDef.DataType := ftString;
_FieldDef.Size := 10;
FDMemTable1.CreateDataSet;
FDMemTable1.Append;
FDMemTable1.FieldValues['field1'] := 1;
FDMemTable1.FieldValues['field2'] := 'one';
FDMemTable1.Append;
FDMemTable1.FieldValues['field1'] := 2;
FDMemTable1.FieldValues['field2'] := 'two';
FDMemTable1.First;
for i := 0 to FDMemTable1.RecordCount - 1 do
begin
_FDDatsRow := FDMemTable1.GetRow;
if _FDDatsRow.Values['field1'] = 2 then
begin
Caption := _FDDatsRow.ValueS['field2'];
end;
FDMemTable1.Next;
end;
end;
我无法理解TFDDatSRow,我试图通过Delphi引用和google搜索它。但关于这一点没有明确的文件。我可以猜它与一行相似,但不是一行,因为它有一个长而复杂的名称,而不仅仅是一个tROW
什么是TFDDatSRow,为什么没有关于它的参考资料,我在哪里可以获得关于它的正确信息?最后,上面的代码是否正确?是的,您的代码工作正常。我承认我没有遇到Tffdatsrow 在你的q之前,但是看了之后,很明显它是用来做什么的 FireDAC的数据集组件都从TDataSet派生,因此符合 用它的方式对数据集操作进行建模,也就是说,当一个数据集 如果是打开的,则它有一个逻辑游标,该游标正好“位于”数据集中的一条记录上 就是那个记录,用Delphi的术语来说是“活动的”记录,在它上面有像
Edit
,Post
,FieldByName
,这样的操作,
等等。这可以正常工作,但会使某些操作无法进行,例如工作
同时在两条记录上,例如,当您希望在两条记录之间交换值时
不同的记录,因为它们不能同时是数据集的活动记录
我说很明显TFDDatSRow的目的是什么,有一件事是允许
完全可以同时访问2个或更多记录
例如,此代码
FDMemTable1.First;
FDDatsRow1 := FDMemTable1.GetRow;
FDMemTable1.Next;
FDDatsRow2 := FDMemTable1.GetRow;
FDDatSRow1.BeginEdit;
FDDatSRow1.Values['Field2'] := FDDatSRow2.Values['Field2'];
FDDatSRow1.EndEdit(False);
允许以以下方式将数据从第二行传输到第一行:
没有TFDDatSRow是不可能的
为什么没有记录?不知道,问问EMBA
我是如何找到它的方法的?很简单,我声明了一个变量
var FDDatSRow1 : TFDDatSRow;
然后打字
FDDatSRow1.
IDE的代码完成弹出了它们
另外,选择TFDDatSRow
并按Ctrl键将我带到它的声明
在FireDac.DatS单元中。看看里面,显然是FireDAC的作者
记住比我的例子中要多得多的东西。我非常感谢你友好而微妙的回答。我的社区版本似乎不允许跳转到TFDDatSRow的源代码中。我不需要那种工作。仅使用tFDDataSet.Lookup看起来不错。鉴于您在早期版本的评论中所说的,您可能想看看在Delphi中使用数据集的教程:参见示例。虽然它是为早期版本的Delphi编写的,但在添加FireDAC之前,它仍然适用。