oh happy day, I figured it out! My select statement all along has been;
DBType = d.value('(rd:DBType)','varchar(max)'),
when it should have been;
DbType = d.value('(rd:DbType)','varchar(max)'),
I now get 'String' for all but @Companies which has an (unspecified) data type. Can't believe I reviewed that code many times and did not see it.
I did not replace 'SQLS' with 'sqls'; the report designer URL is stored by Microsoft as 'SQLServer', so it has never made sense to me that it needed to be changed to lowercase.
thank you Brian, regards, beth