【发布时间】:2013-04-30 01:50:53
【问题描述】:
我在 Delphi 的 Paradox 数据库中使用表时遇到问题。
我需要比较两个表并验证哪些字段相同,哪些字段不同。最后,两个表的字段必须包含相同的值。
但是,一切都必须在不使用 SQL 的情况下完成,只使用纯 Delphi。
这是目前的代码,但我没有得到预期的结果:
procedure TForm1.Button3Click(Sender: TObject);
var
s1,s2:string;
begin
Table1.First;
while not (Table1.Eof) do
Begin
s1 := Table1.FieldByName('Campo').AsString;
Table2.First;
while not (Table2.Eof) do
Begin
s2 := Table2.FieldByName('Campo').AsString;
if (s1 <> s2) then
begin
Table2.Append;
Table2.FieldByName('Campo').AsString :=
Table1.FieldByName('Campo').AsString;
end
else if (s1 = s2) then
begin
Table2.Next;
end;
Table2.Next;
End;
Table1.Next;
End;
End;
【问题讨论】:
-
如果您更具体地了解“未获得预期结果”部分,将会很有用。你得到的结果与你的期望有何不同?我在您的代码中没有看到
Table2.Post与Table.Append匹配。 -
使用此代码时会创建一些重复的字段。我应该把 Table.Append 放在哪里?我已经尝试过了,但出现错误。
-
永远不要告诉寻求帮助的人错误是什么。我们喜欢猜测。
-
为什么需要两个相同的表??