2016-08-12 23 views
1

方面,我希望這是不是有些尷尬的用戶錯誤,但這裏有雲:什麼必須做切換數據庫文件在源碼/德爾福

我想改變的連接數據庫參數並重新打開它。此代碼繼續顯示(並允許編輯)原始表格連接而不是刷新。是否有某種'沖水'或刷新我必須打電話?

dmMain.conMain.close; 
dmMain.conMain.Params.Values['Database'] := secondDatabase; 
dmMain.conMain.Open; 
dmMain.tblTimings.Active := true; 

我隨後嘗試conMain.Connected:= false無效。

+0

'tblTimings'或其他相關對象是否仍然活動? –

+0

是的,我期待它在關閉連接時自動關閉,但我會試一試。感謝這個想法。 –

回答

1

這是不應該的(所有鏈接的數據集應該被關閉),所以我把它叫做一個bug(你在你的代碼中正確地做它)。看到Close方法描述:

TCustomConnection.Close

關閉連接。

調用關閉以斷開與遠程數據庫源 的信息。在停用連接組件前,關閉所有關聯的數據集。通話關閉與設置 關聯屬性爲false相同。

在大多數情況下,關閉連接會將分配給系統資源 的系統資源釋放到連接。

注意:如果先前活動的連接已關閉然後重新打開,則必須單獨重新打開任何關聯的數據集;重新打開 連接不會自動重新打開關聯的數據集。

-3

根據Delphi文檔,您需要ATTACH第二個數據庫到現有連接。

dmMain.ConMain.ExecSQL('ATTACH '+QuotedStr(secondDatabase)+ ' as SecondDB'); 

要刪除數據庫,使用DETACH

完整文檔是在這裏:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_SQLite_with_FireDAC

+0

謝謝。我讀的文檔是關於訪問多個同步數據庫,而我試圖替換主數據庫,但我會試一試! –