TFDConnection.Params.Server is not a valid published property in Delphi XE7. How can I set the server location programmatically? I have 2 MySQL servers (test and production) that are at different ip's and based on what I am doing in the application, I want to easily switch back and forth between the 2 servers.
Setting "Server" programmatically with a TFDConnection
19.7k views Asked by user2021539 At
        	3
        	
        There are 3 answers
2
                 On
                        
                            
                        
                        
                            On
                            
                            
                                                    
                    
                Late answer but it's simple to do.
Restating what TLama said in a comment:
The param properties can vary depending on the driver type, so set the driver type to MySQL and then cast the PARAMS as the driver type. Just do:
(Conn1.Params as TFDPhysMySQLConnectionDefParams).Server := '127.0.0.1';
This way the compiler can verify the param at compile time.
0
                 On
                        
                            
                        
                        
                            On
                            
                            
                                                    
                    
                This works for me. Add any additional parameters as needed
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;
Please read the documentation, it tells you exactly how to define a FireDAC connection for MySQL:
Working with Connections (FireDAC)
Connect to MySQL Server (FireDAC)
You would specify the DB server as part of a Connection Definition:
Defining Connection (FireDAC)
Connection Definitions can be defined in an external .ini file, which you can then reference in the
TFDManager.ConnectionDefFileNameproperty, or load dynamically using theTFDManager.LoadConnectionDefFile()method.Or dynamically using the
TFDManager.ConnectionDefsproperty:Either way, you can then tell
TFDConnectionwhich Connection Definition to use to reach each database when needed:Alternatively, you can specify the connection parameters directly in the
TFDConnection.Paramsproperty if you do not want to pre-define separate connection definitions: