【发布时间】:2013-03-17 21:03:07
【问题描述】:
我正在使用 BDE 和平面表。
我有两个相同的表,tblOne 和 tblTwo
我正在尝试将数据从一个表复制到另一个表。不是整个数据库,只是一个使用这个的特定记录:
function Tdm.CopyRecord(var tblFrom,tblTo : TTable) : Boolean;
var
i : Integer;
begin
Result:=False;
try
tblTo.Insert;
for i:=1 to tblFrom.FieldCount-1 do
begin
if tblFrom.Fields[i].FieldName = tblTo.Fields[i].FieldName then
tblTo.Fields[i].Value:=tblFrom.Fields[i].Value;
end;
tblTo.Post;
Result:=True;
finally
end;
end;
if CopyRecord(tblOne,tblTwo) then...
单步执行所有的值对于 From Table 来说都是“Null”。
发布后,我在tblTo 中添加了一条空白记录。所有的值都是空的,这并不奇怪。 :)
我在复制数据时哪里出错了?它没有进入复制功能。
我已经为此工作了几个小时,但无法使其正常工作。可能我忽略了一些简单的事情。我添加了“var”参数以查看是否有任何区别,但没有。
哦,顺便说一句,我从“1”而不是“0”开始循环,因为两个文件中的第一个字段都是AutoInc。
【问题讨论】:
-
您有什么理由不使用 TDataSet.CopyFields? (例如使用旧的 [pre D2006] 版本的 Delphi)docwiki.embarcadero.com/Libraries/XE3/en/…
-
if tblTo.FindField(tblFrom.Fields[i].FieldName) <> nil then tblTo.FieldByName(tblFrom.Fields[i].FieldName).Value := tblFrom.Fields[i].Value;- 会更准确。 -
您确定您的 tblFrom 没有问题吗?确保它是打开的,并且实际上至少有一条记录要复制。
标签: delphi delphi-5 bde tdataset