ql 서버 데이터 변동 트리거 정보 구현

14783 단어

1. 저장 프로세스를 구축한다. 기능은 동적 쓰기 파일의 정보로 트리거나 저장 프로세스에서 호출할 수 있다.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[SP_SendMagToFile]
(
  @path varchar(100),
  @fileName varchar(100), 
  @msg varchar(200)
)
as
begin
  DECLARE   @object   int
  DECLARE   @hr   int
  DECLARE   @src   varchar(255),   @desc   varchar(255)
  Declare   @tmp   int
  declare   @strPath     nvarchar(512)
  Set   @strPath=@path+'\'+@fileName       --     

  EXEC   @hr   =   sp_OACreate   'Scripting.FileSystemObject',   @object   OUT
  IF   @hr   <>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object,   @src   OUT,   @desc   OUT
        SELECT   hr=convert(varbinary(4),@hr),   Source=@src,   Description=@desc
        RETURN
  END
 
  --    
  EXEC   @hr   =   sp_OAMethod   @object,   'CreateTextFile',   @tmp   OUTPUT   ,   @strPath
  IF   @hr   <>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object
          RETURN
  END
  -- @msg       
  EXEC   @hr   =   sp_OAMethod   @tmp,   'Write',NULL,   @msg
  IF   @hr   <>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object
          RETURN
  END
  --    
  EXEC   @hr   =   sp_OAMethod   @tmp,   'Close',NULL
  IF   @hr   <>   0
  BEGIN
    EXEC   sp_OAGetErrorInfo   @object
    RETURN
  END
end

2. 서비스 측은 폴더가 업데이트되었는지 감청하고 업데이트되면 정보를 보내거나 프로그램을 실행한다.
3. 이렇게 하면 네트워크 전송의 압력을 줄일 수 있다.
4. http를 전송하여 데이터를 업데이트하는 기능을 수행할 수 있다
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ole Automation Procedures';
GO

/*
    ?
@URL=http    
@status=   ?
@returnText=  ?
@object=    
@errSrc=    ?
*/
CREATE PROCEDURE P_GET_HttpRequestData(
    @URL varchar(500),
    @status int=0 OUT,
    @returnText varchar(2000)='' OUT
)
AS
BEGIN
    DECLARE @object int,
    @errSrc int
    /*    */
    EXEC @status = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0', @object OUT
    IF @status <> 0
    BEGIN
     EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
     RETURN
    END

    /*    */
    EXEC @status= SP_OAMethod @object,'open',NULL,'GET',@URL
    IF @status <> 0
    BEGIN
     EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
     RETURN
    END
    EXEC @status=SP_OAMethod @object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded'
    /*    */
    EXEC @status= SP_OAMethod @object,'send',NULL 
    IF @status <> 0 
    BEGIN 
     EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
     RETURN
    END
     
    /*    */
    EXEC @status= SP_OAGetProperty @object,'responseText',@returnText OUT
    IF @status <> 0 
    BEGIN 
     EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT
     RETURN
    END
END;

 
전재 대상:https://www.cnblogs.com/azhai/p/5900346.html

좋은 웹페이지 즐겨찾기