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コンポーネントが新しいデータベースではなく、古いデータベースに接続し続けることです。
これを「リフレッシュ」するにはどうすればよいですか?
新しい定義を設定して接続します。他には何もしないでください。それはあなたがしたことですか?私はマネージャーが変更を_listening_しているという事実に頼ることはありません。 – Victoria
はい、私はこれをしました – Beetlejuice
多分接続パラメータはTFDConnectionによってキャッシュされます。 ConnectionDefNameを別のものに設定しようとしましたが、「MyConn」に戻りましたか?それを解放して新しいものを作る? – Frazz