2011-02-02 69 views
1

我正在使用Delphi2010,我試圖插入到多個表中。我不知道這樣做的最好方法。我想知道的是,如果有一種方法可以使用Delphi的工具(如TQuery或TClientDataSet)來完成一個插入,或者使用代碼(我們使用Pascal語言)會更好。一個數組可能?我一直沒有使用Delphi,但我已經插入並更新了一個表中的信息,而不是多個。此外,這些表使用幾乎相同的字段名稱。插入到多個表中

任何幫助將不勝感激。

在此先感謝!

+0

你正在使用哪個數據庫? – RRUZ 2011-02-02 19:10:03

回答

1

調用存儲過程以同時更新您的表,並使用事務包裝器。或者重新設計你的數據庫來消除重複/冗餘數據,這樣你永遠不需要一次更新多個表。 請注意,這個答案是完全有效的,因爲在問題中提供的信息... (注意:它遲到了,無法入睡,無聊,這是你得到的,因爲問題中信息的質量!)

1

另一個可能的解決方案可能是在數據庫上創建一個可更新的視圖,並從Delphi更新視圖。
製作可更新視圖只是將更新2個表的工作轉移到SQL而不是Delphi中。
這將業務邏輯轉移到SQL而不是在Delphi中。它propobly也產生較少的網絡流量。

正如克里斯寫道:使用事務時,2個或更多的更新/插入是相互依賴的。

1

您使用哪些數據訪問組件? 你有哪些限制? 是否要在兩個表中插入相同的值? 爲什麼不容易就像:

for i = low(tables) to high(tables) do 
    begin 
    query.sql.text := 'insert into '+tables[i]+' (fields) values('+ ...)'; 
    query.execsql; 
    end;