1
我的應用程序需要定義持久連接定義,但有時需要更改連接的數據庫。FireDac持久連接不更新
所以我用這個代碼創建一個定義:
OraCon: TFDConnection;
oDef: IFDStanConnectionDef;
....
OraCon.Connected := False;
oDef := FDManager.ConnectionDefs.FindConnectionDef('MyConn');
if (oDef <> nil) then
begin
FDManager.DeleteConnectionDef('MyConn');
end;
oDef := FDManager.ConnectionDefs.AddConnectionDef;
oDef.Params.Clear;
oDef.Name := 'MyConn';
oDef.Params.Add('DriverId=Ora');
oDef.Params.Add('Database=' + edDB.Text);
oDef.Params.Add('User_name=' + edUser.Text);
oDef.Params.Add('Password=' + edPasswd.Text);
oDef.MarkPersistent;
oDef.Apply;
OraCon.ConnectionDefName := 'MyConn';
OraCon.Connected := True;
它的工作好,並更新FireDac定義文件正確。 問題是我的FDConnection組件保持連接到舊的數據庫,而不是新的數據庫。
我需要做些什麼來「刷新」這個?
斷開連接,設置新的定義並連接。沒有別的事情應該做。那是你做的?我不會依賴這樣一個事實,那就是經理正在傾聽變化併爲你做這件事。 – Victoria
是的,我做了這個 – Beetlejuice
也許連接參數被TFDConnection緩存。你有沒有嘗試過將ConnectionDefName設置爲不同的東西,然後回到'MyConn'?或者釋放它並創建一個新的? – Frazz