程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 如何使用Sybase ASE數據庫的擴展存儲過程?

如何使用Sybase ASE數據庫的擴展存儲過程?

編輯:SyBase綜合文章
使用ASE已經有很長時間了,在使用過程中,不斷深入的了解了它的各種功能,但是對於擴展存儲過程基本上沒有書籍中有講到過,論壇上似乎也沒有出現過此類問題,但是它確實能夠解決部分特殊問題,而且功能是十分強大的,我專門對此進行了研究,現將結果與大家共享.

有時候大家可能會有這種需求,就是需要對服務器進行某些操作,比如拷貝文件,啟動或者停止某些服務和程序等.一般這種情況下,PB就無能為力了,只有輔助於眾多的API函數,並且往往要通過服務器操作系統復雜的權限控制,然後還要執行某些操作,這不是一般PB開發者能夠從容做到的.擴展存儲過程為我們提供了一個便利的方法.


1.常見的擴展存儲過程:
xp_cmdshell:以命令行的方式在服務器端執行某些操作.命令行的功能是非常強大的,幾乎上可以做任何事情.

2.mail系列的擴展存儲過程.


3.自定義的存儲過程,為了實現某些特殊的功能.


下面我們主要以xp_cmdshell來說明如何使用擴展存儲過程:


首先擴展存儲過程其調用方式和普通過程的調用方式是一樣的;

同樣,必須有權限才能調用擴展過程;

對於xp_cmdshell還有個特殊的地方:它執行了更加嚴格的權限控制,即使有sa權限,缺省情況下也不能被執行,必須使用sp_configure 修改服務器配置"xp_cmdshell context" 為0,重新啟動服務器,才有了自個權限.


下面我們開始通過xp_cmdshell,獲取服務器的時間,很簡單:


打開pb的數據庫畫板,用sa用戶連接上數據庫,輸入:


exec xp_cmdshell 'date';


系統將返回服務器時間.


然後我們執行一個拷貝,將c:盤的文件test.txt拷貝到d:盤:


exec xp_cmdshell "copy c:\test.txt d:\test.txt";


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved