触发器访问http

作者:root 时间:24-05-03 阅读数:384人阅读

一、 开启设置

 右键目标实例,在菜单里选择‘方面’

59bedbffbfb4eb102eb19cf8bb40ec7e_webp.webp

选择外围应用配置器

ff287972903439d40b263dbd50782f55_webp.webp

将这一行设置为true

1f64c462b9d317db4f7b6354d1d65a56_webp.webp

 

或者

EXEC sp_configure 'Ole Automation Procedures';
GO

GOsp_configure 'show advanced options', 1;
RECONFIGURE;
go
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO





二、创建过程

利用Navicat for sqlserver 工具连接数据库,选择函数选项->新建函数,然后填入新建函数名称‘P_GET_HttpRequestData’,选择过程。

58193e37bd12da97a55f9da7eca70b24_webp.webp

44ebee5ac7a4c753e1a3009e282af233_webp.webp

d377a8f40d1657e48c460662764eb301_webp.webp



在函数定义界面输入以下代码:

CREATE PROCEDURE [dbo].[P_GET_HttpRequestData](

    @URL varchar(500),

    @status int=0 OUT)
    
    AS

BEGIN

    DECLARE @object int,

    @errSrc int    /*初始化对*/

    declare @str nvarchar(200)

    declare @ResponseText nvarchar(200)

    EXEC @status = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0', @object OUT;

    print '===================='

    print @object

    IF @status <> 0

    BEGIN

    EXEC SP_OAGetErrorInfo @object, @errSrc OUT

    RETURN

    END    /*创建链接*/

    EXEC @status= SP_OAMethod @object,'open',NULL,'GET',@URL

    IF @status <> 0

    BEGIN

    EXEC SP_OAGetErrorInfo @object, @errSrc OUT

    RETURN

    END

    EXEC @status=SP_OAMethod @object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded'

    /*发起请求*/

    EXEC @status= SP_OAMethod @object,'send',null

    print '--------------------------------'

    print @str

    print '--------------------------------'

    print @status

    IF @status <> 0

    BEGIN

    EXEC SP_OAGetErrorInfo @object, @errSrc OUT

    RETURN

    END

    Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT  --@ResponseText为http返回的内容

    Select @ResponseText   

    print @ResponseText

    Exec sp_OADestroy @Object
    
    END;

然后Ctrl+S保存即可



三、在指定的数据表编写触发器调用刚刚的http请求函数

acd70525bccaa57fd228d7b4a952871f_webp.webp

begin       
        declare @url varchar(4000), @param varchar(1000);
        
        select @param=param from inserted;
        
        set @url='http://imgserver.ye.com/receive_set?param='+ @param;
        
        EXECUTE P_GET_HttpRequestData @url;
end


本文链接:http://0595banjia.com/?id=26 

分享到: