如何在Delphi tClientDataset中保存和读取记录

时间:2018-09-19 16:24:01

标签: delphi-xe2 tclientdataset

美好的一天

我是Delphi的新手。我正在尝试以编程方式将记录保存到tClientDataset,然后从数据集中读取记录。我认为我似乎已成功地将记录保存到数据集中,因为在将数据追加到记录中并发布后,数据集的记录数为1。 但是,当我尝试读取记录的值时,我得到了Null。 我使用工具栏创建了tclientdataset,并在设计窗口中手动设置了字段。数据集的名称是

dsUnitData

我正在使用Delphi RadStudio XE2。
有人可以通过指出我在读取Null而不是之前填充的值时做错的事情来提供帮助吗?

这是我的代码:

procedure TfFeetRevenueByUnit.BitBtn1Click(Sender: TObject);
var test, theunitname : string;
count, feet, counter : integer;
revenue :currency;
begin
label3.Visible := false;

dsUnitData.Insert;
dsUnitData.FieldValues['Field_UnitName'] := 'test';
dsUnitData.FieldValues['Field_Feet'] := 10;
dsUnitData.FieldValues['Field_Revenue'] := 10.1;
dsUnitData.Post;

count := dsUnitData.RecordCount;

if not dsUnitData.Active then
dsUnitData.Open;
dsUnitData.First;
while not dsUnitData.EOF do
begin
theunitname := dsUnitData.FieldByName('Field_UnitName').Value;
feet := dsUnitData.FieldByName('Field_UnitName').Value;
revenue := dsUnitData.FieldByName('Field_Revenue').Value;
dsUnitData.Next;
end;

1 个答案:

答案 0 :(得分:0)

我发现了问题。我为tClientDataset错误地设置了FieldKind。 我将FieldKind设置为fkCalculated,但应该是fkInternalCalc