
在项目中加入类型后,定义public static(VB.NET 的声明是 Shared)函数,也就是 SQL Server 在调用这个函数时,无须先建立该类型的实例(instance),就可以直接调用该函数。在函数前通过 SqlProcedure 特性(Attribute)告知该函数是用作创建存储过程。在同一个类型中,可以声明多个函数,注册该函数到 SQL Server 时,会用到程序集在 SQL Server 注册的名称、命名空间(namespace)、类型,以及函数名称,以指定函数当作某个存储过程。
当你通过 Visual Studio 2005 创建“SQL Server Project”项目时,可以通过在项目中新建“Stored Procedure”模板的方式加入含有相关定义的类,你只须将函数的主体编写完毕即可。在此示范一个通过网络访问数据的简单存储过程范例,内容如程序代码列表11-3所示:
程序代码列表11-3 通过.NET的XPathNavigator 解析 XML 文件,并以记录的方式返回
Partial Public Class myStoredProcedures
Public Shared Sub RetrieveRSS(ByVal strURL As SqlString)
Try
Dim strRSS As String
'通过 MSDN 提供的 RSS(Really Simple Syndication)
'取得关于 SQL Server 各种技术信息的列表
'将该 XML 的文件转成一条条的记录,通过 Pipe 返回到前端
If strURL.IsNull Then
strRSS = "http://msdn.microsoft.com/sql/rss.xml"
Else
strRSS = strURL.Value
End If
'************************************************************************
'通过 XPathDocument 类型 通过 Internet 访问XML文件
Dim doc As New XPathDocument(strRSS)
'***********************************************************************
Dim nav As XPathNavigator = doc.CreateNavigator
Dim i As XPathNodeIterator = nav.Select("//item")
Dim rss_results(4) As SqlMetaData
rss_results(0) = New SqlMetaData("名称", SqlDbType.NVarChar, 250)
rss_results(1) = New SqlMetaData("发布日期", SqlDbType.DateTime)
rss_results(2) = New SqlMetaData("说明", SqlDbType.NVarChar, 2000)
rss_results(3) = New SqlMetaData("连接", SqlDbType.NVarChar, 300)
rss_results(4) = New SqlMetaData("RSS 原始节点", SqlDbType.Xml)
'定义存放结果的每一条记录的数据结构
Dim record As New Microso