Currently, the _constructPdoDsn() for the PDOSqlsrv driver works fine only if the host provided is: local or localhost.
If using an IP address, this breaks. Reason is because _constructPdoDsn() applies ( and ) around the host.
This is fine for when $params['host'] = 'local'; because I believe local is a name pipe (I think) and to properly use it you need to add the brackets around it
However if $params['host'] = '127.0.0.1'; this breaks!
Get rid of the forced brackets
That way, when supplying local as a host, you have to enter (local) (which makes more sense as that's how you would do it normally in other applications).