热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

探讨SQLServer2005.NETCLR编程

本文将说明如何在SQLServer2005中以尽可能最简略的方法创立基于.NET的CLR子例程。本文重要针对在服务器端应用SQLServer2005的.NET开发者。一、创立SQLServer2005数据库这一节重要讨论创立

本文将说明如何在SQL Server 2005中以尽可能最简略的方法创立基于.NET的CLR子例程。本文重要针对在服务器端应用SQL Server 2005的.NET开发者。

一、创立SQL Server 2005数据库

这一节重要讨论创立一个将用于本文中的数据库和表格。详见下列步骤:

· 履行"Start->Programs->Microsoft SQL Server 2005->SQL Server Management Studio",并应用必要的证书连接到你的SQL Server 2005实例。

· 一旦建立连接,应用"Object Explorer"打开SQL Server 2005实例,然后右击"databases"并选择"New Database"(图1)。

图1

然后,呈现一个"New Database"对话框。输进数据库名"Sample"并点击"OK"以便在同一个实例内创立新的数据库。

· 一旦创立该数据库,你必定能够在"Object explorer"中看到雷同的成果。

· 应用"Object explorer"打开"Sample"数据库,右击"tables"并选择"new table"(图2)。

图2

· 创立如下图3所示的表格结构,并用"emp"保留表格。

图3

· 一旦你创立了表格"emp",打开它(图4)并应用下列数据进行填充(图5)。

图4

图5

二、创立SQL Server 2005数据库.NET CLR存储过程

一旦你创立完数据库和表格,接下来让我们应用下列步骤在SQL Server 2005数据库中创立一个.NET CLR存储过程:

· 转到"Start -> Programs -> Microsoft Visual Studio 2005 -> Microsoft Visual Studio 2005"。

· 在"New Project"对话框内,从"Visual Basic"树的"Project Type"下选择"database"并选择"SQL Server Project"作为模板,输进名字"SampleAllInOne"。至此,该对话框应当看起来如下图6所示。

图6

· 一旦你点击"OK",将呈现一个"New Database Reference"对话框。输进你自己的实例名,并选择数据库"Sample"(在上一节创立的),并且测试连接(图7)。

图7

· 一旦测试成功,点击"OK"创立工程。

· 然后系统呈现一个对话框,它询问你是否启动CLR调试功效。请点击"Yes"(图8)。

图8

· 应用"Solution explorer",右击"SampleAllInOne"工程,并点击"Add->Stored Procedure"(以创立一个新的存储过程)(图9)。

图9

· 之后,呈现"Add New Item"对话框。在该对话框内,选择"Stored Procedure"作为模板并输进名字"IncSalaries",最后点击"Add"(图10)。

图10

三、.NET CLR存储过程编码

一旦创立"IncSalaries.VB",以下列方法修正你的代码,如下所示:

以下为引用的内容:
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Partial Public Class StoredProcedures
_
Public Shared Sub IncSalaries(ByVal IncVal As SqlDouble)
 '在此添加你的代码
 Using cn As New SqlConnection("context cOnnection=true")
 Dim cmd As New SqlCommand("update sample.dbo.emp set
 sal = sal " & IncVal.ToString, cn)
 cmd.Connection.Open()
 cmd.ExecuteNonQuery()
 End Using
End Sub
End Class

上面是一个应用Visual Basic.NET 2005编写简略的基于CLR的存储过程,你可以把它宣布到SQL Server 2005中。该存储过程名为"IncSalaries",它只接收一个参数-"IncVal"。上面的存储过程简略地应用参数中供给的值来提高表格"emp"中每一位雇员的工资值。

四、.NET CLR存储过程测试

为了测试上面的存储过程,请遵守下列步骤:

· 应用"Solution Explorer"在"test scripts"中打开"test.sql"(图11)。

图11

· 转到最后一行,并如下修正代码:

--为运行你的工程,请编纂你的工程的Test.sql文件。

--这个文件位于Solution Explorer的"Test Scripts"文件夹下

exec IncSalaries 50

· 转到"Start->Programs->Microsoft SQL Server 2005->Configuration Tools->SQL Server Su***ce Area Configuration"。

· 在窗口内,点击"Su***ce Area Configuration for Features"(图12)。

图12

· 启动CLR集成,如下所示(图13)。

图13

· 按F5履行全部计划。假如它的履行中呈现任何错误,一切都会被显示于输出窗口中。

· 假如存储过程成功履行,你应当能够看到所有的工资数增加了50。

五、SQL Server 2005数据库中的.NET CLR用户定义函数

现在,我们要在我们现有的计划上添加一个存储函数。

· 应用"Solution explorer",右击"SampleAllInOne"工程并转到"Add->User-defined Function"(以创立一个新的存储函数)(图14)。

图14

· 之后,呈现"Add New Item"对话框。在对话框内,选择"User defined function"作为模板,输进名字"getNetSalary",最后点击"Add"(图15)。

图15

一旦创立"getNetSalary.VB",接下来按下列方法修正你的代码:

以下为引用的内容:
Imports System
Imports System.Data
Imports System.Data.SqlClient

推荐阅读
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Linux环境变量$PATH的作用及使用方法
    本文介绍了Linux环境变量$PATH的作用及使用方法。$PATH是一个由多个目录组成的变量,用冒号分隔。当执行一个指令时,系统会按照$PATH定义的目录顺序搜索同名的可执行文件,如果有多个同名指令,则先找到的会被执行。通过设置$PATH变量,可以在任何地方执行指令,无需输入绝对路径。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • GTX1070Ti显卡怎么样?GTX1070Ti显卡首发图赏+参数解读与拆解图
    先来简单回顾一下今年的显卡市场,nvidia自从发布了帕斯卡架构新品之后,可以说是一直都主宰着高端游戏显卡市场,虽说amd也憋了一个hbm2的vega64出来,然而即使是最高贵的水 ... [详细]
author-avatar
mobiledu2502857827
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有