我正在使用Delphi2010,我正在尝试插入多个表。我不知道这样做的最好方法。我想知道的是,是否有可能使用Delphi的工具(如TQuery或TClientDataSet)进行一次插入,或者使用代码更好(我们使用Pascal语言)。一个阵列可能吗?我没有长时间使用Delphi,但我已经将信息插入并更新到一个表中,而不是多个。此外,这些表使用几乎相同的字段名称。
非常感谢任何帮助。
提前致谢!!
答案 0 :(得分:1)
使用事务包装器调用存储过程以同时更新表。或者重新设计数据库以消除重复/冗余数据,这样您就不需要一次更新多个表。 请注意,鉴于问题中提供的信息,此答案完全有效...... (注意:已经很晚了,无法入睡,无聊。考虑到问题中的信息质量,这就是你得到的!)
答案 1 :(得分:1)
另一种可能的解决方案是在数据库上创建可更新的视图,并从Delphi更新视图 创建一个可更新的视图只会将更新2个表的工作移到SQL而不是Delphi中 这将业务逻辑移动到sql而不是Delphi中。它本身也会产生较少的网络流量。
正如Chris写道:当两个或更多更新/插入相互依赖时,使用事务。
答案 2 :(得分:1)
您使用哪些数据访问组件? 你有哪些限制? 你想在两个表中插入相同的值吗? 为什么不容易:
for i = low(tables) to high(tables) do
begin
query.sql.text := 'insert into '+tables[i]+' (fields) values('+ ...)';
query.execsql;
end;