TFDConnection.Params.Server不是Delphi XE7中的有效發佈屬性。如何以編程方式設置服務器位置?我有兩臺MySQL服務器(測試和生產),它們位於不同的IP上,並且基於我在應用程序中做的事情,我想在兩臺服務器之間來回切換。使用TFDConnection以編程方式設置「服務器」
4
A
回答
5
請閱讀文檔,它會告訴你到底如何定義MySQL的一個FireDAC連接:
Working with Connections (FireDAC)
你會指定DB服務器作爲連接定義的一部分:
連接定義可以在外部.ini文件中定義,您可以在TFDManager.ConnectionDefFileName
屬性中引用該文件,也可以使用TFDManager.LoadConnectionDefFile()
方法動態加載。
[MySQL_Connection_1]
DriverID=MySQL
Server=192.168.1.100
...
[MySQL_Connection_2]
DriverID=MySQL
Server=192.168.1.101
...
或動態使用TFDManager.ConnectionDefs
屬性:
var
oDef: IFDStanConnectionDef;
begin
oDef := FDManager.ConnectionDefs.AddConnectionDef;
oDef.Name := 'MySQL_Connection_1';
oDef.DriverID := 'MySQL';
oDef.Server := '192.168.1.100';
...
oDef.Apply;
oDef := FDManager.ConnectionDefs.AddConnectionDef;
oDef.Name := 'MySQL_Connection_2';
oDef.DriverID := 'MySQL';
oDef.Server := '192.168.1.101';
...
oDef.Apply;
var
oParams: TStrings;
begin
oParams := TStringList.Create;
oParams.Add('Server=192.168.1.100');
...
FDManager.AddConnectionDef('MySQL_Connection_1', 'MySQL', oParams);
oParams.Clear;
oParams.Add('Server=192.168.1.101');
...
FDManager.AddConnectionDef('MySQL_Connection_2', 'MySQL', oParams);
無論哪種方式,你可以再告訴TFDConnection
需要時使用的連接定義,以達到每個數據庫:
FDConnection1.ConnectionDefName := 'MySQL_Connection_1';
// or: FDConnection1.ConnectionDefName := 'MySQL_Connection_2';
FDConnection1.Connected := True;
或者,您可以在TFDConnection.Params
屬性直接指定,如果你不想預先定義單獨的連接定義的連接參數:
FDConnection1.DriverName := 'MySQL';
FDConnection1.Params.Clear;
FDConnection1.Params.Add('Server=192.168.1.100');
// or: FDConnection1.Params.Values['Server'] := '192.168.1.100';
...
FDConnection1.Connected := True;
0
這對我的作品。根據需要添加任何附加參數
var
oParams: TStrings;
begin
oParams := TStringList.Create;
oParams.Add('Server=' + YourServer);
oParams.Add('Database=' + YourDatabase);
oParams.Add('OSAuthent=Yes');
FDManager.AddConnectionDef('CNX1', 'MSSQL', oParams);
FDConnection.ConnectionDefName := 'CNX1';
FDConnection.Connected := true;
if FDConnection.Connected then
ShowMessage('Connected');
oParams.Free;
相關問題
- 1. 以編程方式設置IIS 6.0的服務器綁定
- 2. 以編程方式在Linux上設置DNS名稱服務器
- 3. 以編程方式設置服務器端OnClick()事件
- 4. 以編程方式在服務器
- 5. 以編程方式設置加速器
- 6. 以編程方式設置Eclipse設置編輯器位置
- 7. 以編程方式設置iPhone設置
- 8. 如何以編程方式設置對Windows服務的權限?
- 9. SQL報告服務 - 以編程方式設置數據源?
- 10. 以編程方式從android設備訪問服務器數據
- 11. 如何以編程方式使用Java/.NET設置增量鏡像服務
- 12. 以編程方式控制Jetbrains內置服務器
- 13. 以編程方式將Tomcat的Java選項設置爲Windows服務的方式
- 14. 以編程方式在項目服務器中設置基準線
- 15. 如何以編程方式爲客戶端和服務器設置baseAddress?
- 16. 以編程方式配置IPhone設置
- 17. 用Java以編程方式終止硒服務器進程
- 18. 以編程方式控制應用程序服務器
- 19. 以編程方式設置UIScrollView方向
- 20. trigger.io以編程方式設置方向
- 21. 將TFDConnection設置爲MongoDB
- 22. 以編程方式設置Android樣式
- 23. 以編程方式設置查看器的位置和方向
- 24. 如何以編程方式禁用位置服務?
- 25. 如何以編程方式從服務
- 26. 以編程方式恢復Windows服務
- 27. 以編程方式反彈服務
- 28. 以編程方式啓動服務
- 29. 以編程方式安裝Windows服務
- 30. 以編程方式啓動Windows服務
那麼,什麼問題?關閉連接(或禁用「Active」屬性),更改「Params」字符串列表中的「Server」值並連接。 – TLama
這就是我所說的...... TFDConnection.Params.Server顯示錯誤:'TFDConnectionDefParams'不包含名爲'server'的成員。當然,我實際上使用的是對象的「名稱」,但不是「TFDConnection」。 – user2021539
您可以將其作爲字符串列表進行訪問,例如'FDConnection.Params [FDConnection.Params.IndexOfName('Server')]:='...';'。或者你可以嘗試(手工沒有FireDAC),'(FDConnection.Params as TFDPhysMySQLConnectionDefParams).Server:='...''在添加FireDAC.Phys.MySQL單元后(後者會更安全)。 – TLama