One recommendation I have is to create a very simple stored procedurte that doesn't even access the database but that just rturns some value, e.g. SELECT 'TEST PASSED'. The test this SP, it'll show whether DBExecuteSQL() can handle the call to the SP. Then you know the most likely cause is the SP itself or SQL Server.
_________________________
There are two types of vessels, submarines and targets.