大型对象 (LOB) 处理
更新日期: 2005 年 12 月 5 日
SQL Server 2005 的 HandlingLOBUsingCLR 示例说明了如何通过使用公共语言运行时 (CLR) 存储过程在 SQL Server 与服务器可访问的文件系统之间传输大型对象 (LOB)。此示例说明了如何在服务器端代码中访问文件,以及如何从基于 CLR 的存储过程中调用动态查询和存储过程。此示例还说明了如何使用 Transact-SQL 注册和撤消注册 CLR 方法和程序集。
默认安装目录是 drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\HandlingLOBUsingCLR。
应用场景
开发人员希望在 SQL Server 与服务器上的文件系统之间复制图像。
语言
Transact-SQL、Visual C# 和 Visual Basic。
功能
HandlingLOBUsingCLR 示例使用 SQL Server 的下列功能:
应用领域 | 功能 |
---|---|
整体 |
CLR 存储过程;从 CLR 存储过程中调用 Transact-SQL 存储过程;VARBINARY(MAX) 数据类型。 |
必备组件
在运行此示例之前,请确保安装了下列软件:
- SQL Server 2005 或 SQL Server 2005 Express Edition (SQL Server Express)。您可以从 SQL Server 2005 Express Edition 文档和示例网站免费获取 SQL Server Express。
- AdventureWorks 数据库,它随 SQL Server 2005 提供,也可以从 SQL Server 开发人员网站获取。
- SQL Server 2005 数据库引擎示例。这些示例包含在 SQL Server 2005 中。您可以从 SQL Server 开发人员中心网站上下载这些示例的最新版本。
- .NET Framework SDK 2.0 或 Microsoft Visual Studio 2005。您可以免费获取 .NET Framework SDK。请参阅安装 .NET Framework SDK。
生成示例
如果尚未创建强名称密钥文件 ExternalSampleKey.snk,则请使用以下说明生成该密钥文件。
生成强名称密钥文件
打开 Microsoft Visual Studio 2005 命令提示。单击**“开始”,依次指向“所有程序”、Microsoft Visual Studio 2005 和“Visual Studio 工具”,再单击“Visual Studio 2005 命令提示”**。
- 或者 -
打开 Microsoft .NET Framework 命令提示。单击**“开始”,依次指向“所有程序”、Microsoft .NET Framework SDK 2.0,再单击“SDK 命令提示”**。
在命令提示符下,使用更改目录 (CD) 命令将命令提示窗口的当前文件夹改为 Samples 文件夹。
注意: 若要确定示例所在的文件夹,请单击“开始”,依次指向“所有程序”、Microsoft SQL Server 2005、“文档和教程”,然后单击“示例目录”。如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples 中。 在命令提示符下,运行以下命令以生成密钥文件:
sn -k ExternalSampleKey.snk
重要提示: 有关强名称密钥对的详细信息,请参阅 MSDN 上 .NET 开发中心中的“安全简讯:.NET Framework 中的强名称和安全性”。
若要生成示例,请执行以下操作:
生成示例
通过使用 Visual Studio 2005 和所提供的 Visual Studio 解决方案或通过使用 Microsoft MSBuild(包括在 .NET Framework SDK 2.0 中)来编译示例。在命令提示符下运行与以下命令相似的命令:
msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\HandlingLOBUsingCLR.sln
确保安装了 AdventureWorks 数据库。
如果未将 SQL Server 数据库引擎示例安装到默认位置,请在 Scripts\InstallCS.sql 和 Scripts\InstallVB.sql 中修改脚本的 CREATE ASSEMBLY 部分中的路径,使其指向示例的安装位置。
如果您不是要使用的 SQL Server 实例的管理员,则必须让管理员授予您 CreateAssembly 权限,才能完成安装。
根据编译的是 Visual C# 项目还是 Visual Basic 项目,在 SQL Server Management Studio 中打开 Scripts\installCS.sql 或 Scripts\installVB.sql 文件。运行该文件中包含的脚本,或在命令提示符下运行与以下命令相似的命令:
sqlcmd -E -I -i Scripts\InstallCS.sql
此脚本将执行以下操作:
运行示例
若要运行示例,请执行以下操作:
运行示例
若要从数据库中读取图像,请调用类似如下的脚本:
exec GetPhotoFromDB 70, 'C:\Temp\', 'test6.gif'
go
确保您指定的目录存在。
若要向数据库中写入图像,请调用类似如下的脚本:
exec PutPhotoIntoDB 70, 'C:\Temp\', 'test1.gif'
go
任何错误都将被记录到您指定的目录下的 error.log 文件中。有关与此过程中的脚本类似的脚本,请参阅 Scripts\test.sql 文件。
删除示例
若要删除示例,请执行以下操作:
删除示例
在 Management Studio 中打开 scripts\cleanup.sql 文件并运行该文件中包含的脚本。或在命令提示符下运行以下命令:
sqlcmd -E -I -i Scripts\cleanup.sql
注释
为了使此示例正确运行,必须启用 SQL Server 2005 或 SQL Server 2005 Express Edition 的 CLR。
提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。未经系统管理员允许,不得将示例应用程序和程序集与生产 SQL Server 数据库或报表服务器相连或一起使用。
请参阅
任务
概念
其他资源
Database Engine .NET Framework Programming
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2005 年 12 月 5 日 |
|