verwendetes Datenbanksystem: MSSMS 17
Hallo zusammen,
ich möchte gern meine Soap Request in Zukunft über die Datenbank abfeuern.
Ich hab mir dazu mal ein passendes Statement rausgesucht.
https://stackoverflow.com/questions/33449/can-you-call-a-webservice-from-tsql-code
CREATE PROCEDURE CALLWEBSERVICE(@Para1 ,@Para2)
AS
BEGIN
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get', 'http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT','false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
END
Das Statement zum Xml Request hab ich mir von der SoapUI zusammenbauen lassen der funktioniert dort auch super, deswegen denke ich nicht das es daran liegt.
Mein Sql Statement gibt mir jedes mal als Response ein Null Wert zurück und die Request wird logischerweise auch nicht ausgeführt. Hat jemand damit Erfahrungen damit und sieht etwas was ich nicht sehe? Ich führe das Statement aktuell direkt aus nicht als Prozedur, denkt ihr das macht einen Unterschied? Lässt meine Soap Api vielleicht einfach nicht den Zugriff von der Datenbank aus zu?
Hab schon einiges probiert, aber bisher noch keinen Weg gefunden, sollte doch aber möglich sein oder?
Grüße
Ich kriege schon beim ausführen von
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT
den Wert 16711422 zurück, aber müsste dort laut Doku nicht eine 0 wiederkommen wenn es erfolgreich war?
Nvm.
EXEC @hr = sp_OACreate 'MSXML2.XMLHTTP', @object OUT
Gibt korrekt eine 0 zurück.
Kann geschlossen werden.
Die Lösungen :
https://stackoverflow.com/questions/41508557/soap-from-tsql-in-sql-server
https://stackoverflow.com/questions/29305600/grant-role-to-exec-stored-procedures
haben bei mir zum gewünschten Ergebnis geführt.