Got it! - with the help of this article... https://stackoverflow.com/questions/16735898/the-active-result-contains-no-fields-using-pdo-with-ms-sql
In the query - nocount had to be enabled (e.g. $DBH2->query("SET NOCOUNT ON; EXEC pEmplo...............") --- thats a bit of a strange one, because I had already enabled nocount against the database handler like this... $DBH2->query("SET NOCOUNT ON"); - but regardless of that, it had to be in the query statement itself.
I now get data!
There is still a minor annoyance; If i make the parameters dynamic and un-comment the bindparam line as you can see in my example, it resorts to failing again. the variables are not user inputs and are safe to hard code, so that's what i've gone with for now but i'm still not happy with accepting that.... my next challenge - if anyone has any thoughts please let me know
Thanks for your help