use*_*539 5 mysql delphi firedac
TFDConnection.Params.Server不是Delphi XE7中的有效发布属性.如何以编程方式设置服务器位置?我有两个不同ip的MySQL服务器(测试和生产),根据我在应用程序中的操作,我想在2台服务器之间轻松切换.
请阅读文档,它告诉您如何为MySQL定义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
...
Run Code Online (Sandbox Code Playgroud)
或动态使用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;
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,您都可以TFDConnection在需要时告诉使用哪个连接定义来访问每个数据库:
FDConnection1.ConnectionDefName := 'MySQL_Connection_1';
// or: FDConnection1.ConnectionDefName := 'MySQL_Connection_2';
FDConnection1.Connected := True;
Run Code Online (Sandbox Code Playgroud)
或者,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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9394 次 |
| 最近记录: |