Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

msxml3.dll no contexto sp_OAMethod 'enviar'


Eu tropecei neste problema desagradável por um fim de semana inteiro. Pessoalmente, achei horrível a solução alternativa "substituir DLL", então fiz o meu melhor para encontrar uma solução mais segura... Felizmente, encontrei duas delas.

Solução 1

Aplique o seguinte MS HotFix, que corrige o problema definitivamente:

(leia o post para mais informações e para solicitar o hotfix por e-mail através dos canais seguros da MS)

Solução 2

Se você não puder aplicar o HotFix, ainda poderá fazer o trabalho usando uma sintaxe ligeiramente diferente ao emitir o comando SEND. Em vez disso:
Exec @ErrCode=sp_OAMethod @Object, 'send',null,'your-data';

fazem isto:
Exec @ErrCode=sp_OAMethod @Object, 'send("your-data")';

Funciona para qualquer tipo de dados de solicitação HTTP:JSON , XML e até mesmo application/x-www-form-urlencoded para solicitação POST padrão. A desvantagem é que essa sintaxe é muito feia... e você tem que alterar todos os seus procedimentos armazenados dessa maneira.

Para obter informações adicionais sobre o problema, você também pode leia este post no meu blog.