#眉標=SQL Server 2005 #副標=資料庫管理的大變革 #大標=與Visual Studio 2005整合新功能 #作者=文/楊志強 =========程式======== 程式1 CREATE ASSEMBLY HelperLibrary FROM ‘\\路徑\HelperLibrary.dll’ WITH PERMISSION_SET SAFE -- 內定值 =========程式======== =========程式======== 程式2 CREATE FUNCTION UTILITYCODE.GETOSVERSION() RETURNS NVARCHAR(50) AS EXTERNAL NAME HelperLibrary.Utilities.GetOSVersion GO =========程式======== =========程式======== EXTERNAL NAME ASSEMBLYNAME.[[NAMESPACE]. CLASSNAME].METHODNAME =========程式======== =========程式======== 程式3 建立使用者自訂函數,以員工編號為參數,回傳訂單筆數 CREATE FUNCTION EmployeeOrderCount (@EmpID INT) RETURNS INT --參數與回傳資料型態 with EXECUTE as self AS BEGIN RETURN( SELECT COUNT(*) AS 'Employee Order Count' FROM Purchasing.PurchaseOrderHeader WHERE EmployeeID = @EmpID ) --利用員工編號找出訂單筆數 END =========程式======== =========程式======== 程式4 CREATE ENDPOINT AdvEnd --若建立ENDPOINT的名稱 STATE = STARTED --啟動服務 AS HTTP --使用HTTP的通訊協定 ( SITE = 'localhost', PATH = '/AdvEnd', --指明在URL所在的路徑 AUTHENTICATION = ( INTEGRATED ), --認證的方式 PORTS = ( CLEAR ) ) --指明Request必須使用HTTP方式 FOR SOAP ( WEBMETHOD 'GetEmployeeOrderCount' --輸出Web Service方法 ( NAME = 'AdventureWorks.dbo.EmployeeOrderCount', --引用的使用者自訂函數名稱 SCHEMA = STANDARD ), --指明SOAP結果不回傳含 XSD的資料 WSDL = DEFAULT, --指定產生WSDL說明文件 BATCHES = DISABLED, --指明是否支援sqlbatch的Ad Hoc查詢 DATABASE = 'AdventureWorks' ) --指明執行的資料庫路徑 Go =========程式======== =========程式======== 程式5 Dim ws As New SQLHTTP.AdvEnd --引用資料庫的Web Service ws.Credentials = New System.Net.NetworkCredential (txtUserID.Text, txtpwd.Text) ‘進行認證 --Try ‘輸入參數給Web Service的GetEmployeeOrderCount的方法 txtOrders.Text = ws.GetEmployeeOrderCount(txtEID.Text).ToString Catch ex As Exception MessageBox.Show(ex.Message) End Try =========程式========