• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
洛客
追求完美的用户体验。
博客园    首页    新随笔    联系   管理    订阅  订阅

在SQL Server 2005中实现 Server.UrlEncode、Server.UrlDecode

这个例子非常的简单,写这个例子的目的主要还是想让大家熟悉SQL 2005 CRL 函数的一个创建过程。

在网页传递变量,一般先编码,然后解码即可。在.net  实现这个功能,非常简单直接调用(微软已经处理完成了),

它的编码:

 String Message = Server.UrlEncode("欢迎学习ASP.NET!");
 Response.Redirect("WebForm2.aspx?Msg=" + Message);

它的解码:

 Label1.Text = Server.UrlDecode(Request.QueryString["Msg"]);

 如果在SQL 2000中实现这个方法,并不是件容易的事情,需要找到UrlEncode和UrlDecode原理,然后分析编码和解码字符串。(如果有兴趣,大家可以试试写下,网上看到SQL 2000实现的,都有问题。)

 

SQL 2005 实现过程:

如果我们用SQL 2005  实现这样的功能,那是非常的方便。下面介绍步骤。(由于截图比较直观,我以截图为主)

一:创建一个SQL Server 2005 数据库工程,如下图:

 

二:配置你需要把该CLR函数添加的数据库。如下图:

三:在SQL Project工程中添加函数,如下图:


 


四、由于我们在代码中要用到 System.Web.HttpUtility.UrlDecode 方法,而默认SQL Project工程下是找不到它的System.Web引用的,所以需要把System.Web引用添加在SQL 2005 中,它告诉我们如果我们在SQL 2005中找不到相关类库的引用,必须在SQL 2005 中先引用它的父程序集。此例如下图:

 

     

        五、此时我们在SQL Project 添加引用就可以找到System.Web了,如下图:

 

 

六、直接调用简单代码即可,如下图:


 

七、编译,生成后,在数据库添加创建的CLR程序集。如下图:

 

 

八、我们测试下创建的确CLR函数,如下图:

 

 

 

注意事项:

1、创建CLR程序集如果失败,需要开启CLR功能,默认数据库是不允许创建CLR的,还有就是更改数据库的信任模式,代码如下:

  1. --启用数据库CLR支持
  2. EXEC sp_configure 'show advanced options','1';
  3. go 
  4. reconfigure;
  5. go
  6. EXEC sp_configure 'clr enabled','1'
  7. go
  8. --更改数据库信任模式(为正确添加到程序集)
  9. Alter Database CSDN  SET TRUSTWORTHY ON
  10. GO

总结:

 该功能虽然只在数据库实现了Server.UrlEncode、Server.UrlDecode,但它告诉我们如何在SQL 2005调用.Net Framwork中的方法,来实现强大的数据库CLR功能。类似在SQL 2005 中很难实现的功能,参考上述办法,调用.Net Framwork提供的强大类库,就可以实现复杂的数据库功能。



posted @ 2009-03-22 18:16  洛客  阅读(1454)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3