資料庫版本:sql server 2016
準備工作:先開啟 ole automation procedures,否則會報錯:sql server 阻止了對元件 'ole automation procedures' 的 過程'sys.sp_oacreate' 的訪問
--開啟 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--
關閉 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--
關閉高階選項
sp_configure '
show advanced options
', 0;go
reconfigure
;go
一,引數說明
sp_oacreate 建立 ole 物件例項。
-->第乙個引數為 ole 物件的程式識別符號(progid)或類識別符號(clsid)。
-->第二個引數為返回的物件令牌,必須是資料型別為 int 的區域性變數,在後面的方法中都要用到物件令牌。輸出引數,必須加 out 或 output。
sp_oamethod 呼叫 ole 物件的方法。
-->第乙個引數為物件令牌。
-->第二個引數為方法名稱。
-->第三個引數為方法的返回值,如果方法返回的是物件,則該引數型別為 int。輸出引數,必須加 out 或 output。
-->第四個及以後的引數為方法的引數值,如果方法的引數是輸出引數,則要加上 out 或 output。
-->sp_oamethod也可用來獲取屬性值。
sp_oageterrorinfo 獲取 ole 自動化錯誤資訊。
-->第乙個引數為物件令牌。
-->第二個引數為錯誤資訊的**。輸出引數,必須加 out 或 output。
-->第三個引數為錯誤的描述。輸出引數,必須加 out 或 output。
sp_oadestroy 釋放已建立的 ole 物件。
-->第乙個引數為物件令牌。
另外,sp_oagetproperty 獲取 ole 物件的屬性值,sp_oasetproperty 將 ole 物件的屬性設定為新值,sp_oastop 停止伺服器範圍內的 ole 自動化儲存過程執行環境。這些都比較簡單。
這七個儲存過程都有返回值,如果返回值是 0 表示成功,其它值表示失敗,示例中只對 sp_oacreate 的返回值作了判斷。
二,get方法參考
createprocedure
[dbo
].[get
]( --
建立儲存過程get
@url
varchar(500), --
輸入引數變數
@responsetext
varchar(8000) output --
返回引數)as
begin
declare
@status
asint
--宣告物件型別為int整數
--sp_oacreate 建立 ole 物件例項, msxml2.serverxmlhttp.3.0 返回的物件令牌,@status:自定義物件名稱
--資料型別必須為 int 的區域性變數,後面的方法中都要用到物件令牌。輸出引數,必須加 out 或 output。
相當於將msxml2.serverxmlhttp.3.0賦值為@status,@status就算物件令牌
-->sp_oamethod 一共有4個引數,sp_oamethod也可用來獲取屬性值。
exec sp_oamethod @status, '
open
', null, '
get',@url,'
false'--
第乙個引數為物件令牌。
exec sp_oamethod @status, '
setrequestheader
', null, '
content-type
',''
--第二個引數為方法名稱。
exec sp_oamethod @status, '
send
', null, null
--第三個引數為方法的返回值,如果方法返回的是物件,則該引數型別為 int。輸出引數,必須加 out 或 output。
exec sp_oamethod @status, '
responsetext
', @responsetext output --
第四個及以後的引數為方法的引數值,如果方法的引數是輸出引數,則要加上 out 或 output。
if@status
<>
0begin
--sp_oageterrorinfo 獲取 ole 自動化錯誤資訊。
--第乙個引數為物件令牌。
--第二個引數為錯誤資訊的**。輸出引數,必須加 out 或 output。
--第三個引數為錯誤的描述。輸出引數,必須加 out 或 output。
exec sp_oageterrorinfo @status
--sp_oageterrorinfo 獲取 ole 自動化錯誤資訊。
endexec sp_oadestroy @status
--sp_oadestroy 釋放已建立的 ole 物件。
end
三,post方法參考
), --請求位址
@data
varchar(8000
), --請求引數
SQL儲存過程
什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要新增...
sql儲存過程
概念 sql server提供了一種方法,它可以將一些固定的操作集中起來由sql server資料庫伺服器來完成,以實現某個任務,這種方法就是儲存過程。儲存過程是sql語句和可選控制流語句的預編譯集合,儲存過程在資料庫中可由應用程式通過乙個呼叫執行,而且允許使用者申明變數 有條件的執行以及其它強大的...
SQL儲存過程
儲存過程 1.返回值 create proc example4 as begin declare 返回值 int select 返回值 sum 庫存量 from 產品 return 返回值 endgo 接受這個返回值必須要用變數來接收,如 declare 接收值 int exec 接收值 examp...