溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQLServer觸發(fā)器怎么調(diào)用JavaWeb接口

發(fā)布時間:2021-12-30 11:07:15 來源:億速云 閱讀:229 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“SQLServer觸發(fā)器怎么調(diào)用JavaWeb接口”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“SQLServer觸發(fā)器怎么調(diào)用JavaWeb接口”這篇文章吧。

這幾天接到一個需求需要吧不同系統(tǒng)的數(shù)據(jù)庫進行同步,需要我做一個中間平臺進行連接,瞬間就想到了觸發(fā)器調(diào)用接口然后通過API進行傳遞再寫入另一個數(shù)據(jù)庫。
sqlServer觸發(fā)器調(diào)用JavaWeb接口
1、開啟 Ole Automation Procedures
sqlServer要想調(diào)用web接口,就要使用自帶的存儲過程。而這些存儲過程2005版本以后默認時關(guān)閉的,所以要先開啟。

 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

關(guān)閉 Ole Automation Procedures

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

關(guān)閉高級選項

sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO

然后就可以進行寫觸發(fā)器,因為我這邊表的內(nèi)容比較多,大家直接看代碼就好了。

CREATE TRIGGER [dbo].[kingdee]
ON [dbo].[稱重信息]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN
 -- Type the SQL Here.
	DECLARE @fbillno int;
	DECLARE @carid varchar(4000);
	DECLARE @type varchar(4000);
	DECLARE @sendplace varchar(4000);	
	DECLARE @consignee varchar(4000);		
	DECLARE @material varchar(4000);
	DECLARE @specification varchar(4000);
	DECLARE @gw varchar(4000);
	DECLARE @tare varchar(4000);	
	DECLARE @nw varchar(4000);
	DECLARE @kw varchar(4000);
  DECLARE @aw varchar(4000);
	DECLARE @price varchar(4000);
	DECLARE @money varchar(4000);
	DECLARE @zfxs varchar(4000);
	DECLARE @square varchar(4000);
	DECLARE @weighingcost varchar(4000);
	DECLARE @gwtime varchar(4000);
	DECLARE @taretime varchar(4000);
	declare @url varchar(4000);
	declare @object int;
	declare @responseText varchar(4000);
	
	SELECT @fbillno = (select 流水號 from inserted);
	SELECT @carid = (select 車號 from inserted);
	SELECT @type = (select 過磅類型 from inserted);
	SELECT @sendplace = (select 發(fā)貨單位 from inserted);
	SELECT @consignee = (select 收貨單位 from inserted);
	SELECT @material = (select 貨名 from inserted);
	SELECT @specification = (select 規(guī)格 from inserted);	
	SELECT @gw = (select 毛重 from inserted);
	SELECT @tare = (select 皮重 from inserted);
	SELECT @nw = (select 凈重 from inserted);	
	SELECT @kw = (select 扣重 from inserted);
	SELECT @aw = (select 實重 from inserted);
	SELECT @price = (select 單價 from inserted);	
	SELECT @money = (select 金額 from inserted);
	SELECT @zfxs = (select 折方系數(shù) from inserted);
	SELECT @square = (select 方量 from inserted);	
	SELECT @weighingcost = (select 過磅費 from inserted);
	SELECT @gwtime = (select 毛重時間 from inserted);
	SELECT @taretime = (select 皮重時間 from inserted);
	SELECT @url = 'http://ip/saveweight/' + CONVERT(INT, @fbillno)+'/'+ CONVERT(VARCHAR, @carid)
	+'/'+ CONVERT(VARCHAR, @type)+'/'+ CONVERT(VARCHAR, @sendplace)+'/'+ CONVERT(VARCHAR, @consignee)+'/'+ CONVERT(VARCHAR, @material)
	+'/'+ CONVERT(VARCHAR, @specification)+'/'+ CONVERT(VARCHAR, @gw)+'/'+ CONVERT(VARCHAR, @tare)+'/'+ CONVERT(VARCHAR, @nw)
	+'/'+ CONVERT(VARCHAR, @kw)+'/'+ CONVERT(VARCHAR, @aw)+'/'+ CONVERT(VARCHAR, @price)+'/'+ CONVERT(VARCHAR, @money)
	+'/'+ CONVERT(VARCHAR, @zfxs)+'/'+ CONVERT(VARCHAR, @square)+'/'+ CONVERT(VARCHAR, @weighingcost)+'/'+ CONVERT(VARCHAR, @gwtime)
	+'/'+ CONVERT(VARCHAR, @taretime);
	print @url;
-- 	insert into one (id, name) VALUES (@id, @url);
	
	exec sp_OACreate'MSXML2.XMLHTTP',@object out
	exec sp_OAMethod @object,'open',null,'get',@url,'false'
	exec sp_OAMethod @object,'send'
	exec sp_OAMethod @object,'responseText',@responseText output
 
	print @responseText
 
	exec sp_OADestroy @object
 
	SET NOCOUNT ON;
END
GO

EXEC sp_addextendedproperty
'MS_Description', N'稱重信息表插入后觸發(fā)器',
'SCHEMA', N'dbo',
'TABLE', N'稱重信息',
'TRIGGER', N'kingdee'

看著復(fù)雜其實一點也不復(fù)雜,因為這個數(shù)據(jù)庫的表是中文(不是我建的表系統(tǒng)中的中文的我沒辦法改),大致就是獲取插入的數(shù)據(jù)然后進行觸發(fā),請求,然后API執(zhí)行插入另一個數(shù)據(jù)庫。
然后執(zhí)行插入語句就可以看到執(zhí)行的結(jié)果了~

SQLServer觸發(fā)器怎么調(diào)用JavaWeb接口

以上是“SQLServer觸發(fā)器怎么調(diào)用JavaWeb接口”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI