SQLServer觸發(fā)器調(diào)用JavaWeb接口的過(guò)程詳解
這幾天接到一個(gè)需求需要吧不同系統(tǒng)的數(shù)據(jù)庫(kù)進(jìn)行同步,需要我做一個(gè)中間平臺(tái)進(jìn)行連接,瞬間就想到了觸發(fā)器調(diào)用接口然后通過(guò)API進(jìn)行傳遞再寫(xiě)入另一個(gè)數(shù)據(jù)庫(kù)。
sqlServer觸發(fā)器調(diào)用JavaWeb接口
1、開(kāi)啟 Ole Automation Procedures
sqlServer要想調(diào)用web接口,就要使用自帶的存儲(chǔ)過(guò)程。而這些存儲(chǔ)過(guò)程2005版本以后默認(rèn)時(shí)關(guān)閉的,所以要先開(kāi)啟。
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)閉高級(jí)選項(xiàng)
sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
然后就可以進(jìn)行寫(xiě)觸發(fā)器,因?yàn)槲疫@邊表的內(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 流水號(hào) from inserted); SELECT @carid = (select 車號(hào) from inserted); SELECT @type = (select 過(guò)磅類型 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 實(shí)重 from inserted); SELECT @price = (select 單價(jià) from inserted); SELECT @money = (select 金額 from inserted); SELECT @zfxs = (select 折方系數(shù) from inserted); SELECT @square = (select 方量 from inserted); SELECT @weighingcost = (select 過(guò)磅費(fèi) from inserted); SELECT @gwtime = (select 毛重時(shí)間 from inserted); SELECT @taretime = (select 皮重時(shí)間 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ù)雜其實(shí)一點(diǎn)也不復(fù)雜,因?yàn)檫@個(gè)數(shù)據(jù)庫(kù)的表是中文(不是我建的表系統(tǒng)中的中文的我沒(méi)辦法改),大致就是獲取插入的數(shù)據(jù)然后進(jìn)行觸發(fā),請(qǐng)求,然后API執(zhí)行插入另一個(gè)數(shù)據(jù)庫(kù)。
然后執(zhí)行插入語(yǔ)句就可以看到執(zhí)行的結(jié)果了~

到此這篇關(guān)于SQLServer觸發(fā)器調(diào)用JavaWeb接口的過(guò)程詳解的文章就介紹到這了,更多相關(guān)SQLServer觸發(fā)器調(diào)用接口內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信