首先查看一下 ADO.NET 2.0 提供用来创建 SQL Server 服务器端对象的相关类。
11.2.1 System.Data.SqlServer 命名空间
当用 .NET 开发 SQL Server 的内部对象时,最常使用的命名空间将会是存在 Sqlaccess.dll 程序文件内的 System.Data.SqlServer。若你曾经用 ADO.NET 开发数据库的应用程序,则部分对象是相通的。例如 SqlConnection、SqlCommand 等,微软的开发小组尽量让程序设计师在 SQL Server 内访问数据与在外部访问数据的程序编写方式相似,而不需要熟悉两套开发模式。以下稍微解释这些对象:
SqlContext:SqlContext 类让你可以取得 SQL Server 内部调用者的执行环境(Context),主要是取得 SqlPipe 类实例,用此返回结果给前端调用该数据库对象的应用程序,或是 SqlTriggerContext 以提供编写触发器(Trigger)的相关数据。SqlContext 类在让我们所编写的程序集与 SQL Server 进行沟通时显得非常重要。使用该类的程序范例如程序代码列表11-1所示:
程序代码列表11-1 通过 SqlContext 取得用户当前的执行环境
Using cnn As New SqlConnection("Context Connection=true")
Using sqlCmd As New SqlCommand
'因为 Product 数据表属于不同的 Schema,所以需要加上 Schema 名称
cnn.Open()
sqlCmd.Connection = cnn
sqlCmd.CommandText = "SELECT ProductNumber FROM Production.Product"
Dim sqlRead As SqlDataReader = sqlCmd.ExecuteReader()
'因为是存储过程,要通过 SqlPipe 将运行结果接回原来 SQL Server 的输出