Artech

Develop every application as an art using the most suitable technologies!

常用链接

统计

积分与排名

CnBlogs

专家的Blog|主页

最新评论

F. SQL Server

[原创-总结]谈谈基于SQL Server 的Exception Handling
     摘要: 对于所有的开发人员来说,Exception Handling是我们每天都要面对的事情。对于基于Source Code的Exception Handling,我想大家已经司空见惯了,但是对于Database级别的Exception Handling,就没有那么常见了。在这篇文章中,我将会介绍我对于基于Database编程中Exception Handling的一些粗浅的认识:在编写Stored Procedure时,如何抛出一个可预知的Exception,ADO.NET如何处理从Database抛出的Exception,如何保存基于Database Exception的Error Message,如何在Database和.NET Application之间进行消息的传递[注:这里的Database主要指SQL Server]。  阅读全文

posted @ 2008-08-28 13:44 Artech 阅读(979) | 评论 (2)  编辑

[原创]谈谈基于SQL Server 的Exception Handling - PART III
     摘要: 在谈谈基于SQL Server 的Exception Handling - PART II中,我给出了一个完整的例子说明了:如何在将message定义在sys.messages中保证message的一致性和可维护性;如何在Stored procedure中使用RAISERROR将一个可预知的Error抛出;如何在Stored procedure中使用TRY/CATCH进行异常的捕捉;在Application如果处理从SQL Server抛出的Exception。实际上,SQL Server database Engine抛出、被我们的.NET最终捕获的SqlException,我们通过SqlException的属性可以得到Error的相关信息。下面是SqlException的属性列表:  阅读全文

posted @ 2007-12-17 12:53 Artech 阅读(2495) | 评论 (7)  编辑

[原创]谈谈基于SQL Server 的Exception Handling - PART II
     摘要: 在上面一节中,我通过RAISERROR重写了创建User的Stored procedure,实际上上面的Stored procedure是有问题的。我之所以没有立即指出,是因为这是一个很容易犯的错误,尤其是习惯了.NET Exception Handling的人更容易犯这样的错误。我们知道在.NET Application中,如果出现一个未处理的Exception,程序将立即终止,后续的程序将不会执行,但是对于上面的SQL则不一样,虽然我们通过RAISERROR将Error抛出,但是SQL的指定并不会被终止,INSERT语句仍然会被执行的。我想很多人会说在RAISERROR后加一个Return就可以了嘛。不错这是一个常用的解决方案,但是我不倾向于使用这种方法。为了更清楚地说明这个问题,我们举另一个相关的例子,上面我们介绍了创建User的例子,我们现在来引入另一个例子:如何将一个User添加到一个Role里面  阅读全文

posted @ 2007-12-17 12:41 Artech 阅读(2489) | 评论 (6)  编辑

[原创]谈谈基于SQL Server 的Exception Handling - PART I
     摘要: 对于所有的开发人员来说,Exception Handling是我们每天都要面对的事情。对于基于Source Code的Exception Handling,我想大家已经司空见惯了,但是对于Database级别的Exception Handling,就没有那么常见了。在这篇文章中,我将会介绍我对于基于Database编程中Exception Handling的一些粗浅的认识:在编写Stored Procedure时,如何抛出一个可预知的Exception,ADO.NET如何处理从Database抛出的Exception,如何保存基于Database Exception的Error Message,如何在Database和.NET Application之间进行消息的传递[注:这里的Database主要指SQL Server]。  阅读全文

posted @ 2007-12-17 08:38 Artech 阅读(2767) | 评论 (7)  编辑

[原创]T-SQL Enhancement in SQL Server 2005 - Part II
     摘要: 在第一部分中,我们讨论了APPLYCTE这两个T-SQL Enhancement。APPLY实现了Table和TVF的Join,CTE通过创建“临时的View”的方式使问题化繁为简。现在我们接着来讨论另外两个重要的T-SQL Enhancement Items:PIVOTRanking。  阅读全文

posted @ 2007-08-24 23:16 Artech 阅读(3202) | 评论 (17)  编辑

[原创]T-SQL Enhancement in SQL Server 2005 - Part I
     摘要: 较之前一版本,SQL Server 2005可以说是作出了根本性的革新。对于一般的编程人员来说,最具吸引力的一大特性就是实现了对CLR的寄宿,使我们可以使用任意一种.NET Programming Language来编写Stored Procedure、Function、Trigger、Custom Type等等。但是并不意味着我们使用多年的T-SQL即将被淘汰,而事实上T-SQL仍然是我们最为常见的基于Database的编程语言。 为了使编程人员更容易地使用T-SQL来实现一些较为复杂的功能,SQL Server 2005在T-SQL进行了一系列的改进,这篇文章将概括性地介绍这些T-SQL Enhancement。  阅读全文

posted @ 2007-08-23 21:46 Artech 阅读(3609) | 评论 (20)  编辑

[原创]我的ORM: 开发自己的Data Access Application Block - Part I
     摘要: 经常在网上看到对ORM的讨论沸沸扬扬,我也来凑个热闹,谈谈我写的一个ORM。最近在做一项工作,把我们经常用到的一些业务逻辑抽象出来,写成一个个的Application Block,使之可以运用到不同的Application中,比如Data Access,Messaging,Auditing,Data binding等等。现在先做一个Data access application block。由于时间仓促,没有进行什么优化和较多的测试,大家不必深究我所提供的Code ,我只希望为大家的ORM提供另一种想法。  阅读全文

posted @ 2007-04-03 18:55 Artech 阅读(4672) | 评论 (4)  编辑

[原创]SQL Server 2005:一个使用新创建的User的问题和解决方法
     摘要: 昨天在写一个SQLXML的Sample的时候,在SQL Server 2005添加新的User的时候出了一系列的问题,觉得这是一个很Common的问题,今天我把它重现,并把相关的Screen Shot截下来,希望大家在遇到相同的问题的时候能对大家有所帮助。  阅读全文

posted @ 2007-03-26 21:51 Artech 阅读(2874) | 评论 (9)  编辑

[原创]SQLXML系列之一:SQLXML初体验——用XML代替SQL来操作数据库
     摘要: 随着Internet的飞速发展,W3C成员意识到必须找到一种办法将数据和Web的表现方式分离出来,于是XML诞生了。当今的XML已经成为IT领域各个数据(特别是文档)的首选格式。由于它具有标记不同字段的能力,因此使搜索变得更简单。从微软发布SQL Server 2000的时候,就读XML数据的存储和检索提供内置的支持。而且微软早已意识到必须对其不断地改进,以便和不断发展的W3C的XML标准保持一致。在微软发布SQL Server 2000的几个月之后,它便在Web站点上发布了完全可以支持XML特性的软件包提供免费的下载。这些软件包被称作SQLXML(XML for SQL Server),当时的版本是3.0。5年之后,SQL Server 升级到了SQL Server 2005,提供了一系列的新的功能和特性,比如对新的XML数据类型的支持;提供了新的Data Access Provider——Native Client;等等。为了提供对这个新的功能的支持,和对原来版本的改进,SQLXML4.0被推出来。SQLXML4.0已经成为了一种成熟的数据访问技术.  阅读全文

posted @ 2007-03-26 02:59 Artech 阅读(4656) | 评论 (29)  编辑