我正在使用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...
逐步通过这从所有的值为“空”表。
之后我得到一个空白记录添加到tblTo
。毫不奇怪,所有的值都是空的。 :)
我在哪里错了复制数据?它没有使它复制功能。
我一直在这个几个小时,不能使它的工作。可能是简单的我看起来很简单。我添加了“var”参数来查看是否有任何区别,但没有。
哦,通过由,我开始循环从“1”而不是“0”,因为这两个文件中的第一个字段是AutoInc
。
是否有任何理由你没有使用TDataSet.CopyFields? (如使用Delphi的旧版[D2006以前版本])http://docwiki.embarcadero.com/Libraries/XE3/en/Data.DB.TDataSet.CopyFields – 2013-03-17 21:13:56
'if tblTo.FindField(tblFrom.Fields [i] .FieldName)<> nil then tblTo.FieldByName(tblFrom.Fields [i] .FieldName).Value:= tblFrom.Fields [i] .Value;' - 它会更准确。 – Abelisto 2013-03-17 21:23:20
你确定你的tblFrom没有问题吗?确保它是开放的,并且其中至少有一条记录要复制。 – 2013-03-18 01:55:15