插入到多个表中
问题描述:
我正在使用Delphi2010,我试图插入到多个表中。我不知道这样做的最好方法。我想知道的是,如果有一种方法可以使用Delphi的工具(如TQuery或TClientDataSet)来完成一个插入,或者使用代码(我们使用Pascal语言)会更好。一个数组可能?我一直没有使用Delphi,但我已经插入并更新了一个表中的信息,而不是多个。此外,这些表使用几乎相同的字段名称。插入到多个表中
任何帮助将不胜感激。
在此先感谢!
答
调用存储过程以同时更新您的表,并使用事务包装器。或者重新设计你的数据库来消除重复/冗余数据,这样你永远不需要一次更新多个表。 请注意,这个答案是完全有效的,因为在问题中提供的信息... (注意:它迟到了,无法入睡,无聊,这是你得到的,因为问题中信息的质量!)
答
另一个可能的解决方案可能是在数据库上创建一个可更新的视图,并从Delphi更新视图。
制作可更新视图只是将更新2个表的工作转移到SQL而不是Delphi中。
这将业务逻辑转移到SQL而不是在Delphi中。它propobly也产生较少的网络流量。
正如克里斯写道:使用事务时,2个或更多的更新/插入是相互依赖的。
答
您使用哪些数据访问组件? 你有哪些限制? 是否要在两个表中插入相同的值? 为什么不容易就像:
for i = low(tables) to high(tables) do
begin
query.sql.text := 'insert into '+tables[i]+' (fields) values('+ ...)';
query.execsql;
end;
你正在使用哪个数据库? – RRUZ 2011-02-02 19:10:03