长期损害硬盘的六款常用软件

所属分类: 实用技巧 / 应用技巧 阅读数: 1100
收藏 0 赞 0 分享
使用SQL Server 2005 的CLR存储过程 

    SQL Server 2005的一大新特性便是整合了.net 的CLR。整合了.net CLR的好处在于,可以很方便地使开发者可以使用自己熟悉的.net 语言来创建存储过程,触发器,自定义函数等。在本文中,将以C#来创建存储过程。为什么不用T-SQL来创建存储过程呢?因为T-SQL发展到目前,已经很长时间了,在某些场合有其局限性,比如T-SQL不是面向对象的,某些语法过于复杂等。而如果使用面向对象的.NET 语言来编写如存储过程等数据对象时,由于.net 语言强大的特性,因此能写出更健壮和更优秀的存储过程。注意,通过SQL Server 2005用.NET编写的存储过程,都是和用.NET语言编写一般应用的程序一样,都是managed code。此外,CLR 编程语言提供了 T-SQL 中所没有的丰富构造(例如数组和列表等)。与 T-SQL(它是一种解释语言)相比,CLR 编程语言之所以具有更好的性能,是因为托管代码是已编译的。对于涉及算术计算、字符串处理、条件逻辑等的操作,托管代码的性能可能要优于 T-SQL 一个数量级。在本文中,虽然可以用T-SQL来编写存储过程,但为了说明问题,还是以C#来写存储过程。步骤如下: 

    首先,打开Visual Studio 2005 beta 2,选择c#语言,新建立一个database工程,命名为sqlproject1。此时,Visual Studio 2005 beta 2会询问你,要与什么数据库进行关联。由于我们采用的是pubs这个数据库,因此我们选择机器名是本地机器,设置好sql的验证方式,选择pubs数据库,就可以了。(注意,在SQL Server 2005中,pubs和northwind数据库不再是SQL Server 2005的自带数据库了,需要到http://go.microsoft.com/fwlink/?LinkId=31995去下载)。接着,在工程建立完毕后,选择新增项目,选择store procedure存储过程,并以Authors.cs命名,再按确定,并输入以下代码: 

  using System; 
  using System.Data; 
  using System.Data.Sql; 
  using System.Data.SqlTypes; 
  using Microsoft.SqlServer.Server; 
  using System.Data.SqlClient; 

  public partial class StoredProcedures 
  { 
   [Microsoft.SqlServer.Server.SqlProcedure] 

   public static void GetAuthors() 
   { 
    SqlPipe sp = SqlContext.Pipe; 
    using (SqlConnection conn = new SqlConnection("context connection=true")) 
    { 
     conn.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = conn; 
     cmd.CommandText = "Select DatePart(second, GetDate()) " + " As timestamp,* from authors"; 
     SqlDataReader rdr = cmd.ExecuteReader(); 
     sp.Send(rdr); 
    } 
   } 

   [SqlProcedure] 

   public static void GetTitlesByAuthor(string authorID) 
   { 
    string sql = "select T.title, T.price, T.type, " + "T.pubdate from authors A" + 
       " inner join titleauthor TA on A.au_id = TA.au_id " + 
       " inner join titles T on TA.title_id = T.title_id " + 
       " where A.au_id = '" + @authorID + "'"; 
    using (SqlConnection conn = new SqlConnection("context connection=true")) 
    { 
     conn.Open(); 
     SqlPipe sp = SqlContext.Pipe; 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = conn; 
     cmd.CommandText = sql; 
     SqlParameter paramauthorID = new SqlParameter("@authorID", SqlDbType.VarChar, 11); 
     paramauthorID.Direction = ParameterDirection.Input; 
     paramauthorID.Value = authorID; 
     cmd.Parameters.Add(paramauthorID); 
     SqlDataReader rdr = cmd.ExecuteReader(); 
     sp.Send(rdr); 
    } 
   } 
  }
更多精彩内容其他人还在看

如何设置一个严格30分钟过期的Session示例介绍

SESSION和COOKIE是每个面试官必问的知识点,下面为大家介绍下如何设置一个严格30分钟过期的Session,具体示例如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助
收藏 0 赞 0 分享

禁用Cookie三种方法(保护你的隐私)

cookie的作用很多人都知道——cookie里面保存着我们所浏览过的网页的记录,为了安全起见下面为大家介绍禁用Cookie的三种方法,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

URL中井号的作用介绍

URL中的井号(#)是比较常见的,下面就为大家介绍一些有关井号的故事,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

访问Excel的几种方式介绍

本文将为大家介绍下访问Excel的几种方式:通过OLEDB方式、通过Microsoft.Office.Interop.Excel访问及其他相关等等,感兴趣的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

HttpClient抓取网页的两种方式

可以利用NodeFilter对网页进行分析及利用Visitor对网页进行分析实现抓取网页,具体如下感兴趣的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

EditPlus 3设置字体大小(附图)

EditPlus3是我们经常使用的编辑工具,至于如何设置字体大小的问题,有很多朋友在问,下面有个不错教程,大家可以感受下
收藏 0 赞 0 分享

GHOST删除分区和修复硬盘坏扇区不仅仅是备份还原

如果你只是用GHOST来备份和还原数据的话,那你可委屈了这款“功能强大”的软件了。其实GHOST还有一些比较另类的功能,接下来为大家介绍下GHOST删除分区和修复硬盘坏扇区
收藏 0 赞 0 分享

Cookie的使用之保存与获取代码示例

比较实用的设置Cookie和获取Cookie方法,下面的示例大家可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

sharepoint 2010版本图文安装教程

这篇文章主要为大家详细介绍了Microsoft Share Point2010中文版图文安装的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Chrome开发者工具9个调试技巧详解

对于我们前端开发者来说,Chrome自带的开发者工具绝对是不可或缺的调试工具,我们常用的调试方法包含一些console等,而Chrome自带的开发者工具其实很强大,下面我们来聊聊一些你可能不知道的使用方法。
收藏 0 赞 0 分享
查看更多