Para averiguar cuál es el problema, mira qué es lo que genera el format(...).
Seguramente lo que contienen las variables NombreBaseDeDatos y PuertoBaseDeDatos no es lo que espera el ConnectionString.
Fíjate que DSN=... tiene que estar todo entre comillas dobles.
Código Delphi
[-]
NombreBaseDeDatos := DameBaseEmpresa();
PuertoBaseDeDatos := 3306;
[...]
s := format('Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=MySQL;DESCRIPTION=Conector MySQL;SERVER=localhost;UID=root;DATABASE=&s;PORT=%d"', [NombreBaseDeDatos, PuertoBaseDeDatos]);
ShowMessage(s);
ConnectionString := s;
[...]