D字段是不是用户输入的有什么关系,
最终它还是存到了数据库中,
因为 A,C是表A中的原有字段所以A,C的确定表B中的一条记录
得
Table1.AfterPost;
var
strSql: string;
begin
if table2.Locate('A;C', VarArrayOf([Table1.FieldByName('C').AsString, Table1.FieldByName('C').AsString])) then
begin
strSql := 'update B set D=''' + table1.FieldByName('D').AsString + '''';
strSql := strSql + ' where A=''' + table1.FieldByName('A').AsString + '''';
strSql := strSql + ' and C=''' + table1.FieldByName('C').AsString + '''';
query1.SQL.Clear;
query1.SQL.Add(strSql);
query1.ExceSQL;
{或者
table2.Edit;
table2.FieldByName('D').AsString := Table1.FieldByName('D').AsString;
table2.Post;
}
end
else
begin
table2.Append;
table2.FieldByName('A').AsString := Table1.FieldByName('A').AsString;
table2.FieldByName('C').AsString := Table1.FieldByName('C').AsString;
table2.FieldByName('D').AsString := Table1.FieldByName('D').AsString;
table2.Post;
end;
end;
table1.AfterDelete;
var
strSql: string;
begin
strSql := 'delete from B';
strSql := strSql + ' where A=''' + table1.FieldByName('A').AsString + '''';
strSql := strSql + ' and C=''' + table1.FieldByName('C').AsString + '''';
query1.SQL.Clear;
query1.SQL.Add(strSql);
query1.ExceSQL;
end;