<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_韩现龙的博客</title><subtitle type="text">编程的孩子[为心找一个归宿] 以铜为镜，可正衣冠。以古为镜，可知兴替。以人为镜，可明得失</subtitle><id>http://feed.cnblogs.com/blog/u/29503/rss</id><updated>2012-01-19T05:20:32Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/29503/rss"/><entry><id>http://www.cnblogs.com/hanxianlong/archive/2012/01/19/2326311.html</id><title type="text">[转]Google Android开发精华教程</title><summary type="text">转自：http://www.apkbus.com/android-19658-1-1.html是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称，该平台由操作系统、中间件、用户界面和应用软件组成，号称是首个为移动终端打造的真正开放和完整的移动软件。本文汇总整理了时下关于Google Android技术教程的下载资源，供参考。一、入门级：《Android中文教程》中文版[简介]：《Android中文教程》简单易懂，对初学Android的人来说有着很好的帮助。[下载]：http://www.apkbus.com/android-624-1-1.html《Andro</summary><published>2012-01-19T05:21:00Z</published><updated>2012-01-19T05:21:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2012/01/19/2326311.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2012/01/19/2326311.html"/><content type="html">&lt;div&gt;&lt;table cellspacing="0" cellpadding="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; table-layout: fixed; width: 757px; color: #444444; font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 12px; line-height: 18px; background-color: #ffffff; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td id="postmessage_41469" style="word-wrap: break-word; font-size: 14px; "&gt;&lt;p&gt;转自：&lt;a href="http://www.apkbus.com/android-19658-1-1.html"&gt;http://www.apkbus.com/android-19658-1-1.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称，该平台由操作系统、中间件、用户界面和应用软件组成，号称是首个为移动终端打造的真正开放和完整的移动软件。&lt;/p&gt;&lt;br style="word-wrap: break-word; " /&gt;本文汇总整理了时下关于Google Android技术教程的下载资源，供参考。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;一、入门级：&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;《Android中文教程》中文版&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[简介]：《Android中文教程》简单易懂，对初学Android的人来说有着很好的帮助。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[下载]：&lt;a href="http://www.apkbus.com/android-624-1-1.html" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;http://www.apkbus.com/android-624-1-1.html&lt;/a&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;《Android入门手册》中文版&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[简介]：《Android入门手册》中文版，比较不错的入门读物，介绍了怎样搭建环境之类的基础知识。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[下载]：&lt;a href="http://www.apkbus.com/android-13501-1-1.html" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;http://www.apkbus.com/android-13501-1-1.html&lt;/a&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;《&lt;a href="http://www.apkbus.com/" target="_blank" style="word-wrap: break-word; color: #336699; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: blue; "&gt;Android开发&lt;/a&gt;揭秘》&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[说明]：《Android开发揭秘》揭秘Android的体系结构和开发环境，实例丰富，是目前Android编程的绝佳指南。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[下载]：&lt;a href="http://www.apkbus.com/android-13502-1-1.html" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;http://www.apkbus.com/android-13502-1-1.html&lt;/a&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;IBM Android技术文档&amp;#8212;&amp;#8212;从入门到精通&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[说明]：IBM的Android资料，对Android感兴趣的人可以学习一下。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[下载]：&lt;a href="http://www.apkbus.com/android-401-1-1.html" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;http://www.apkbus.com/android-401-1-1.html&lt;/a&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;特别推荐：&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;二、专家 高焕堂特辑&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;高焕堂，台湾软件架构设计大师，从事IT行业近30年，被称为&amp;#8220;台湾OO技术教父级代表人物&amp;#8221;。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;table cellspacing="0" cellpadding="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; table-layout: fixed; width: 757px; color: #444444; font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 12px; line-height: 18px; background-color: #ffffff; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td id="postmessage_41469" style="word-wrap: break-word; font-size: 14px; "&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;《Android应用框架原理与程序设计》中文版&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[说明]：本书详细介绍了Android平台的基本框架开发原理，配有大量实例和图片；涵盖了从界面XML设计到后台程序设计的基本和高级操作。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[下载]：&lt;a href="http://www.apkbus.com/android-93-1-1.html" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;http://www.apkbus.com/android-93-1-1.html&lt;/a&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;《Android应用开发36计》&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[说明]：中文版PDF格式，包含Android 应用框架原理与程序设计36技+源代码。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[下载]：&lt;a href="http://www.apkbus.com/android-428-1-1.html" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;http://www.apkbus.com/android-428-1-1.html&lt;/a&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;三、《Android开发教程笔记》1&amp;#8212;13完全版&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[说明]：&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing="0" cellpadding="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; table-layout: fixed; width: 757px; color: #444444; font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 12px; line-height: 18px; background-color: #ffffff; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td id="postmessage_41469" style="word-wrap: break-word; font-size: 14px; "&gt;&lt;a href="http://www.apkbus.com/" target="_blank" style="word-wrap: break-word; color: #336699; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: blue; "&gt;Android&lt;/a&gt;新版Android开发教程&amp;amp;笔记--基础入门一.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程&amp;amp;笔记--基础入门二.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程&amp;amp;笔记三--环境搭建与解析.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程&amp;amp;笔记四--Dalvik ADB.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记五--模拟器、应用1、2.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记六--应用3、4 布局.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记七--基础UI编程1.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记八--基础UI编程2.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记九--基础UI编程3.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记十--基础UI编程4.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记十一--可视化UI设计DroidDraw.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记十二--文件存取、数据库编程.pdf&lt;br style="word-wrap: break-word; " /&gt;新版Android开发教程+笔记十三(待续)--应用、permission、资源.pdf&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;[下载]：&lt;a href="http://www.apkbus.com/android-13476-1-1.html" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;http://www.apkbus.com/android-13476-1-1.html&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2326311.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2012/01/19/2326311.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2012/01/09/2317278.html</id><title type="text">一个存储过程，找回SQL 2008删除的数据</title><summary type="text">参考文章：http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/对该篇文章中提供的存储过程做了一些改进，使其适用于SQL Server 2008CREATEPROCEDURE[dbo].[Recover_Deleted_Data_Proc]@SchemaName_n_TableNameNVARCHAR(Max),@Date_Fromdatetime=&amp;#39;1900/01/01&amp;#39;,@Date_Todatetime=&amp;#39;9999/12/31&amp;#39;asDECLARE@RowLogCont</summary><published>2012-01-09T08:40:00Z</published><updated>2012-01-09T08:40:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2012/01/09/2317278.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2012/01/09/2317278.html"/><content type="html">&lt;p&gt;参考文章：&lt;a href="http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/"&gt;http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;对该篇文章中提供的存储过程做了一些改进，使其适用于SQL Server 2008&lt;/p&gt;&lt;p&gt;CREATE&amp;nbsp;PROCEDURE&amp;nbsp;[dbo].[Recover_Deleted_Data_Proc]&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;@SchemaName_n_TableName&amp;nbsp;NVARCHAR(Max),&lt;br /&gt;@Date_From&amp;nbsp;datetime=&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;1900/01/01&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;br /&gt;@Date_To&amp;nbsp;datetime&amp;nbsp;=&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;9999/12/31&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DECLARE&amp;nbsp;@RowLogContents&amp;nbsp;VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;)&lt;br /&gt;DECLARE&amp;nbsp;@TransactionID&amp;nbsp;NVARCHAR(Max)&lt;br /&gt;DECLARE&amp;nbsp;@AllocUnitID&amp;nbsp;BIGINT&lt;br /&gt;Declare&amp;nbsp;@AllocUnitName&amp;nbsp;NVARCHAR(Max)&lt;br /&gt;Declare&amp;nbsp;@SQL&amp;nbsp;NVARCHAR(Max)&lt;br /&gt;&lt;br /&gt;DECLARE&amp;nbsp;@bitTable&amp;nbsp;TABLE&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;[ID]&amp;nbsp;INT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;[Bitvalue]&amp;nbsp;INT&lt;br /&gt;)&lt;br /&gt;--Create&amp;nbsp;table&amp;nbsp;to&amp;nbsp;&lt;span style="color: #0000FF;"&gt;set&lt;/span&gt;&amp;nbsp;the&amp;nbsp;bit&amp;nbsp;position&amp;nbsp;of&amp;nbsp;one&amp;nbsp;&lt;span style="color: #0000FF;"&gt;byte&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;print&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;insert&amp;nbsp;into&amp;nbsp;bit&amp;nbsp;table&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;;&lt;br /&gt;INSERT&amp;nbsp;INTO&amp;nbsp;@bitTable&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;,&lt;span style="color: #800080;"&gt;8&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;,&lt;span style="color: #800080;"&gt;16&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;,&lt;span style="color: #800080;"&gt;32&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;,&lt;span style="color: #800080;"&gt;64&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;7&lt;/span&gt;,&lt;span style="color: #800080;"&gt;128&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;--Create&amp;nbsp;table&amp;nbsp;to&amp;nbsp;collect&amp;nbsp;the&amp;nbsp;row&amp;nbsp;data.&lt;br /&gt;DECLARE&amp;nbsp;@DeletedRecords&amp;nbsp;TABLE&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[RowLogContents]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[AllocUnitID]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BIGINT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Transaction&amp;nbsp;ID]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NVARCHAR(Max),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[FixedLengthData]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SMALLINT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TotalNoOfCols]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SMALLINT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[NullBitMapLength]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SMALLINT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[NullBytes]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TotalNoofVarCols]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SMALLINT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ColumnOffsetArray]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[VarColumnStart]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SMALLINT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[NullBitMap]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VARCHAR(MAX)&lt;br /&gt;)&lt;br /&gt;--Create&amp;nbsp;a&amp;nbsp;common&amp;nbsp;table&amp;nbsp;expression&amp;nbsp;to&amp;nbsp;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;&amp;nbsp;all&amp;nbsp;the&amp;nbsp;row&amp;nbsp;data&amp;nbsp;plus&amp;nbsp;how&amp;nbsp;many&amp;nbsp;bytes&amp;nbsp;we&amp;nbsp;have&amp;nbsp;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&amp;nbsp;each&amp;nbsp;row.&lt;br /&gt;;WITH&amp;nbsp;RowData&amp;nbsp;AS&amp;nbsp;(&lt;br /&gt;SELECT&amp;nbsp;&lt;br /&gt;&lt;br /&gt;[RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;]&amp;nbsp;AS&amp;nbsp;[RowLogContents]&amp;nbsp;&lt;br /&gt;&lt;br /&gt;,[AllocUnitID]&amp;nbsp;AS&amp;nbsp;[AllocUnitID]&amp;nbsp;&lt;br /&gt;&lt;br /&gt;,[Transaction&amp;nbsp;ID]&amp;nbsp;AS&amp;nbsp;[Transaction&amp;nbsp;ID]&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;--[Fixed&amp;nbsp;Length&amp;nbsp;Data]&amp;nbsp;=&amp;nbsp;Substring&amp;nbsp;(RowLog&amp;nbsp;content&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;A+&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;B&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;bytes)&lt;br /&gt;,CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;AS&amp;nbsp;[FixedLengthData]&amp;nbsp;&amp;nbsp;--@FixedLengthData&lt;br /&gt;&lt;br /&gt;--&amp;nbsp;[TotalnoOfCols]&amp;nbsp;=&amp;nbsp;&amp;nbsp;Substring&amp;nbsp;(RowLog&amp;nbsp;content&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;[Fixed&amp;nbsp;Length&amp;nbsp;Data]&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;bytes)&lt;br /&gt;,CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;&amp;nbsp;[TotalNoOfCols]&lt;br /&gt;&lt;br /&gt;--[NullBitMapLength]=ceiling([Total&amp;nbsp;No&amp;nbsp;of&amp;nbsp;Columns]&amp;nbsp;/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;)&lt;br /&gt;,CONVERT(INT,&amp;nbsp;ceiling(CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;))&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;[NullBitMapLength]&amp;nbsp;&lt;br /&gt;&lt;br /&gt;--[Null&amp;nbsp;Bytes]&amp;nbsp;=&amp;nbsp;Substring&amp;nbsp;(RowLog&amp;nbsp;content&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;A+&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;B&amp;nbsp;+&amp;nbsp;[Fixed&amp;nbsp;Length&amp;nbsp;Data]&amp;nbsp;+&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;[NullBitMapLength]&amp;nbsp;)&lt;br /&gt;,SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;,&lt;br /&gt;CONVERT(INT,&amp;nbsp;ceiling(CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;)))&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;[NullBytes]&lt;br /&gt;&lt;br /&gt;--[TotalNoofVarCols]&amp;nbsp;=&amp;nbsp;Substring&amp;nbsp;(RowLog&amp;nbsp;content&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;A+&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;B&amp;nbsp;+&amp;nbsp;[Fixed&amp;nbsp;Length&amp;nbsp;Data]&amp;nbsp;+&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;[Null&amp;nbsp;Bitmap&amp;nbsp;length]&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;,(CASE&amp;nbsp;WHEN&amp;nbsp;SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;In&amp;nbsp;(&lt;span style="color: #800080;"&gt;0x30&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0x70&lt;/span&gt;)&amp;nbsp;THEN&lt;br /&gt;CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&lt;br /&gt;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;br /&gt;+&amp;nbsp;CONVERT(INT,&amp;nbsp;ceiling(CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;)),&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;nbsp;END)&amp;nbsp;AS&amp;nbsp;[TotalNoofVarCols]&amp;nbsp;&lt;br /&gt;&lt;br /&gt;--[ColumnOffsetArray]=&amp;nbsp;Substring&amp;nbsp;(RowLog&amp;nbsp;content&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;A+&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;B&amp;nbsp;+&amp;nbsp;[Fixed&amp;nbsp;Length&amp;nbsp;Data]&amp;nbsp;+&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;[Null&amp;nbsp;Bitmap&amp;nbsp;length]&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;,&amp;nbsp;[TotalNoofVarCols]*&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;,(CASE&amp;nbsp;WHEN&amp;nbsp;SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;In&amp;nbsp;(&lt;span style="color: #800080;"&gt;0x30&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0x70&lt;/span&gt;)&amp;nbsp;THEN&lt;br /&gt;SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;]&lt;br /&gt;,&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;br /&gt;+&amp;nbsp;CONVERT(INT,&amp;nbsp;ceiling(CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;br /&gt;,&amp;nbsp;(CASE&amp;nbsp;WHEN&amp;nbsp;SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;In&amp;nbsp;(&lt;span style="color: #800080;"&gt;0x30&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0x70&lt;/span&gt;)&amp;nbsp;THEN&lt;br /&gt;CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&lt;br /&gt;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;br /&gt;+&amp;nbsp;CONVERT(INT,&amp;nbsp;ceiling(CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;)),&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;nbsp;END)&lt;br /&gt;*&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&amp;nbsp;&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;nbsp;END)&amp;nbsp;AS&amp;nbsp;[ColumnOffsetArray]&amp;nbsp;&lt;br /&gt;&lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Variable&amp;nbsp;column&amp;nbsp;Start&amp;nbsp;=&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;A+&amp;nbsp;Status&amp;nbsp;Bit&amp;nbsp;B&amp;nbsp;+&amp;nbsp;[Fixed&amp;nbsp;Length&amp;nbsp;Data]&amp;nbsp;+&amp;nbsp;[Null&amp;nbsp;Bitmap&amp;nbsp;length]&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;+([TotalNoofVarCols]*&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,CASE&amp;nbsp;WHEN&amp;nbsp;SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)In&amp;nbsp;(&lt;span style="color: #800080;"&gt;0x30&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0x70&lt;/span&gt;)&lt;br /&gt;THEN&amp;nbsp;&amp;nbsp;(&lt;br /&gt;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;+&amp;nbsp;CONVERT(INT,&amp;nbsp;ceiling(CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;))&amp;nbsp;&lt;br /&gt;&lt;br /&gt;+&amp;nbsp;((CASE&amp;nbsp;WHEN&amp;nbsp;SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;In&amp;nbsp;(&lt;span style="color: #800080;"&gt;0x30&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0x70&lt;/span&gt;)&amp;nbsp;THEN&lt;br /&gt;CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&lt;br /&gt;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;br /&gt;+&amp;nbsp;CONVERT(INT,&amp;nbsp;ceiling(CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;,REVERSE(SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))/&lt;span style="color: #800080;"&gt;8.0&lt;/span&gt;)),&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;nbsp;END)&amp;nbsp;*&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))&amp;nbsp;&lt;br /&gt;&lt;br /&gt;ELSE&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;End&amp;nbsp;AS&amp;nbsp;[VarColumnStart]&lt;br /&gt;&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sys.fn_dblog(NULL,&amp;nbsp;NULL)&lt;br /&gt;WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllocUnitName&amp;nbsp;like&amp;nbsp;&lt;span style="color: #800000;"&gt;''&lt;/span&gt;&amp;nbsp;+&amp;nbsp;@SchemaName_n_TableName&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&amp;nbsp;--&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;dbo.Student&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;br /&gt;AND&amp;nbsp;Context&amp;nbsp;IN&amp;nbsp;(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;LCX_MARK_AS_GHOST&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;LCX_HEAP&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;)&amp;nbsp;AND&amp;nbsp;Operation&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;LOP_DELETE_ROWS&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;)&amp;nbsp;&lt;br /&gt;And&amp;nbsp;SUBSTRING([RowLog&amp;nbsp;Contents&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;],&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)In&amp;nbsp;(&lt;span style="color: #800080;"&gt;0x30&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0x70&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;Use&amp;nbsp;this&amp;nbsp;subquery&amp;nbsp;to&amp;nbsp;filter&amp;nbsp;the&amp;nbsp;date&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;AND&amp;nbsp;[TRANSACTION&amp;nbsp;ID]&amp;nbsp;IN&amp;nbsp;(Select&amp;nbsp;DISTINCT&amp;nbsp;[TRANSACTION&amp;nbsp;ID]&amp;nbsp;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sys.fn_dblog(NULL,&amp;nbsp;NULL)&amp;nbsp;&lt;br /&gt;Where&amp;nbsp;Context&amp;nbsp;IN&amp;nbsp;(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;LCX_NULL&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;)&amp;nbsp;AND&amp;nbsp;Operation&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;LOP_BEGIN_XACT&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;)&amp;nbsp;&amp;nbsp;&lt;br /&gt;And&amp;nbsp;[Transaction&amp;nbsp;Name]=&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;DELETE&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;br /&gt;And&amp;nbsp;&amp;nbsp;CONVERT(NVARCHAR(&lt;span style="color: #800080;"&gt;11&lt;/span&gt;),[Begin&amp;nbsp;Time])&amp;nbsp;BETWEEN&amp;nbsp;@Date_From&amp;nbsp;AND&amp;nbsp;@Date_To)),&lt;br /&gt;&lt;br /&gt;--Use&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;&amp;nbsp;technique&amp;nbsp;to&amp;nbsp;repeate&amp;nbsp;the&amp;nbsp;row&amp;nbsp;till&amp;nbsp;the&amp;nbsp;no&amp;nbsp;of&amp;nbsp;bytes&amp;nbsp;of&amp;nbsp;the&amp;nbsp;row.&lt;br /&gt;N1&amp;nbsp;(n)&amp;nbsp;AS&amp;nbsp;(SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;UNION&amp;nbsp;ALL&amp;nbsp;SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;),&lt;br /&gt;N2&amp;nbsp;(n)&amp;nbsp;AS&amp;nbsp;(SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;FROM&amp;nbsp;N1&amp;nbsp;AS&amp;nbsp;X,&amp;nbsp;N1&amp;nbsp;AS&amp;nbsp;Y),&lt;br /&gt;N3&amp;nbsp;(n)&amp;nbsp;AS&amp;nbsp;(SELECT&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;FROM&amp;nbsp;N2&amp;nbsp;AS&amp;nbsp;X,&amp;nbsp;N2&amp;nbsp;AS&amp;nbsp;Y),&lt;br /&gt;N4&amp;nbsp;(n)&amp;nbsp;AS&amp;nbsp;(SELECT&amp;nbsp;ROW_NUMBER()&amp;nbsp;OVER(ORDER&amp;nbsp;BY&amp;nbsp;X.n)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;N3&amp;nbsp;AS&amp;nbsp;X,&amp;nbsp;N3&amp;nbsp;AS&amp;nbsp;Y)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;insert&amp;nbsp;into&amp;nbsp;@DeletedRecords&lt;br /&gt;Select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RowLogContents&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[AllocUnitID]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[Transaction&amp;nbsp;ID]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[FixedLengthData]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[TotalNoOfCols]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[NullBitMapLength]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[NullBytes]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[TotalNoofVarCols]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[ColumnOffsetArray]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[VarColumnStart]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;---Get&amp;nbsp;the&amp;nbsp;Null&amp;nbsp;value&amp;nbsp;against&amp;nbsp;each&amp;nbsp;column&amp;nbsp;(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;means&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;zero&amp;nbsp;means&amp;nbsp;not&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,[NullBitMap]=(REPLACE(STUFF((SELECT&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&amp;nbsp;+&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(CASE&amp;nbsp;WHEN&amp;nbsp;[ID]=&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(NVARCHAR(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;),(SUBSTRING(NullBytes,&amp;nbsp;n,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;%&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))&amp;nbsp;&amp;nbsp;ELSE&amp;nbsp;CONVERT(NVARCHAR(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;),((SUBSTRING(NullBytes,&amp;nbsp;n,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;/&amp;nbsp;[Bitvalue])&amp;nbsp;%&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))&amp;nbsp;END)&amp;nbsp;--&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;[nullBitMap]&lt;br /&gt;FROM&lt;br /&gt;N4&amp;nbsp;AS&amp;nbsp;Nums&lt;br /&gt;Join&amp;nbsp;RowData&amp;nbsp;AS&amp;nbsp;C&amp;nbsp;ON&amp;nbsp;n&amp;lt;=NullBitMapLength&lt;br /&gt;Cross&amp;nbsp;Join&amp;nbsp;@bitTable&amp;nbsp;WHERE&amp;nbsp;C.[RowLogContents]=D.[RowLogContents]&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;[RowLogContents],n&amp;nbsp;ASC&amp;nbsp;FOR&amp;nbsp;XML&amp;nbsp;PATH(&lt;span style="color: #800000;"&gt;''&lt;/span&gt;)),&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&lt;span style="color: #800000;"&gt;''&lt;/span&gt;),&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&lt;span style="color: #800000;"&gt;''&lt;/span&gt;))&lt;br /&gt;FROM&amp;nbsp;RowData&amp;nbsp;D;&lt;br /&gt;&lt;br /&gt;print&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;insert&amp;nbsp;deleted&amp;nbsp;records&amp;nbsp;into&amp;nbsp;@DeletedRecords&amp;nbsp;table&amp;nbsp;variable&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;br /&gt;CREATE&amp;nbsp;TABLE&amp;nbsp;[#temp_Data]&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[FieldName]&amp;nbsp;&amp;nbsp;VARCHAR(MAX),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[FieldValue]&amp;nbsp;VARCHAR(MAX),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Rowlogcontents]&amp;nbsp;VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;)&lt;br /&gt;--Create&amp;nbsp;common&amp;nbsp;table&amp;nbsp;expression&amp;nbsp;and&amp;nbsp;join&amp;nbsp;it&amp;nbsp;with&amp;nbsp;the&amp;nbsp;rowdata&amp;nbsp;table&lt;br /&gt;--&amp;nbsp;to&amp;nbsp;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;&amp;nbsp;each&amp;nbsp;column&amp;nbsp;details&lt;br /&gt;;With&amp;nbsp;CTE&amp;nbsp;AS&amp;nbsp;(&lt;br /&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;This&amp;nbsp;part&amp;nbsp;is&amp;nbsp;for&amp;nbsp;variable&amp;nbsp;data&amp;nbsp;columns&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;SELECT&amp;nbsp;Rowlogcontents,&lt;br /&gt;NAME&amp;nbsp;,&lt;br /&gt;cols.leaf_null_bit&amp;nbsp;AS&amp;nbsp;nullbit,&lt;br /&gt;leaf_offset,&lt;br /&gt;ISNULL(syscolumns.length,&amp;nbsp;cols.max_length)&amp;nbsp;AS&amp;nbsp;[length],&lt;br /&gt;cols.system_type_id,&lt;br /&gt;cols.leaf_bit_position&amp;nbsp;AS&amp;nbsp;bitpos,&lt;br /&gt;ISNULL(syscolumns.xprec,&amp;nbsp;cols.precision)&amp;nbsp;AS&amp;nbsp;xprec,&lt;br /&gt;ISNULL(syscolumns.xscale,&amp;nbsp;cols.scale)&amp;nbsp;AS&amp;nbsp;xscale,&lt;br /&gt;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;AS&amp;nbsp;is_null,&lt;br /&gt;--Calculate&amp;nbsp;the&amp;nbsp;variable&amp;nbsp;column&amp;nbsp;size&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;the&amp;nbsp;variable&amp;nbsp;column&amp;nbsp;offset&amp;nbsp;array&lt;br /&gt;(CASE&amp;nbsp;WHEN&amp;nbsp;leaf_offset&amp;lt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;and&amp;nbsp;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)=&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;THEN&lt;br /&gt;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;END)&amp;nbsp;AS&amp;nbsp;[Column&amp;nbsp;value&amp;nbsp;Size],&lt;br /&gt;&lt;br /&gt;---Calculate&amp;nbsp;the&amp;nbsp;column&amp;nbsp;length&lt;br /&gt;(CASE&amp;nbsp;WHEN&amp;nbsp;leaf_offset&amp;lt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;and&amp;nbsp;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)=&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;(leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;))&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&lt;br /&gt;-&amp;nbsp;ISNULL(NULLIF(CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;((leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;))&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)))),&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;),&amp;nbsp;[varColumnStart])&lt;br /&gt;ELSE&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;END)&amp;nbsp;AS&amp;nbsp;[Column&amp;nbsp;Length]&lt;br /&gt;&lt;br /&gt;--Get&amp;nbsp;the&amp;nbsp;Hexa&amp;nbsp;&lt;span style="color: #0000FF;"&gt;decimal&lt;/span&gt;&amp;nbsp;value&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;the&amp;nbsp;RowlogContent&lt;br /&gt;--HexValue&amp;nbsp;of&amp;nbsp;the&amp;nbsp;variable&amp;nbsp;column=Substring([Column&amp;nbsp;value&amp;nbsp;Size]&amp;nbsp;-&amp;nbsp;[Column&amp;nbsp;Length]&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,[Column&amp;nbsp;Length])&lt;br /&gt;--This&amp;nbsp;&lt;span style="color: #0000FF;"&gt;is&lt;/span&gt;&amp;nbsp;the&amp;nbsp;data&amp;nbsp;of&amp;nbsp;your&amp;nbsp;column&amp;nbsp;but&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;the&amp;nbsp;Hexvalue&lt;br /&gt;,CASE&amp;nbsp;WHEN&amp;nbsp;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)=&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;NULL&amp;nbsp;ELSE&lt;br /&gt;SUBSTRING(Rowlogcontents,((CASE&amp;nbsp;WHEN&amp;nbsp;leaf_offset&amp;lt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;and&amp;nbsp;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)=&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;END)&lt;br /&gt;-&amp;nbsp;((CASE&amp;nbsp;WHEN&amp;nbsp;leaf_offset&amp;lt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;and&amp;nbsp;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)=&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;(leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;))&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&lt;br /&gt;-&amp;nbsp;ISNULL(NULLIF(CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;((leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;))&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)))),&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;),&amp;nbsp;[varColumnStart])&lt;br /&gt;ELSE&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;END)))&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,((CASE&amp;nbsp;WHEN&amp;nbsp;leaf_offset&amp;lt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;and&amp;nbsp;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)=&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;(leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;))&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))))&lt;br /&gt;-&amp;nbsp;ISNULL(NULLIF(CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(SUBSTRING&amp;nbsp;([ColumnOffsetArray],&amp;nbsp;(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;*&amp;nbsp;((leaf_offset*-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;))&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)))),&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;),&amp;nbsp;[varColumnStart])&lt;br /&gt;ELSE&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;END)))&amp;nbsp;END&amp;nbsp;AS&amp;nbsp;hex_Value&lt;br /&gt;&lt;br /&gt;FROM&amp;nbsp;@DeletedRecords&amp;nbsp;A&lt;br /&gt;Inner&amp;nbsp;Join&amp;nbsp;sys.allocation_units&amp;nbsp;allocunits&amp;nbsp;On&amp;nbsp;A.[AllocUnitId]=allocunits.[Allocation_Unit_Id]&lt;br /&gt;INNER&amp;nbsp;JOIN&amp;nbsp;sys.partitions&amp;nbsp;partitions&amp;nbsp;ON&amp;nbsp;(allocunits.type&amp;nbsp;IN&amp;nbsp;(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;)&lt;br /&gt;AND&amp;nbsp;partitions.hobt_id&amp;nbsp;=&amp;nbsp;allocunits.container_id)&amp;nbsp;OR&amp;nbsp;(allocunits.type&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;AND&amp;nbsp;partitions.partition_id&amp;nbsp;=&amp;nbsp;allocunits.container_id)&lt;br /&gt;INNER&amp;nbsp;JOIN&amp;nbsp;sys.system_internals_partition_columns&amp;nbsp;cols&amp;nbsp;ON&amp;nbsp;cols.partition_id&amp;nbsp;=&amp;nbsp;partitions.partition_id&lt;br /&gt;LEFT&amp;nbsp;OUTER&amp;nbsp;JOIN&amp;nbsp;syscolumns&amp;nbsp;ON&amp;nbsp;syscolumns.id&amp;nbsp;=&amp;nbsp;partitions.object_id&amp;nbsp;AND&amp;nbsp;syscolumns.colid&amp;nbsp;=&amp;nbsp;cols.partition_column_id&lt;br /&gt;WHERE&amp;nbsp;leaf_offset&amp;lt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;UNION&lt;br /&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;This&amp;nbsp;part&amp;nbsp;is&amp;nbsp;for&amp;nbsp;fixed&amp;nbsp;data&amp;nbsp;columns&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;SELECT&amp;nbsp;&amp;nbsp;Rowlogcontents,&lt;br /&gt;NAME&amp;nbsp;,&lt;br /&gt;cols.leaf_null_bit&amp;nbsp;AS&amp;nbsp;nullbit,&lt;br /&gt;leaf_offset,&lt;br /&gt;ISNULL(syscolumns.length,&amp;nbsp;cols.max_length)&amp;nbsp;AS&amp;nbsp;[length],&lt;br /&gt;cols.system_type_id,&lt;br /&gt;cols.leaf_bit_position&amp;nbsp;AS&amp;nbsp;bitpos,&lt;br /&gt;ISNULL(syscolumns.xprec,&amp;nbsp;cols.precision)&amp;nbsp;AS&amp;nbsp;xprec,&lt;br /&gt;ISNULL(syscolumns.xscale,&amp;nbsp;cols.scale)&amp;nbsp;AS&amp;nbsp;xscale,&lt;br /&gt;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;AS&amp;nbsp;is_null,&lt;br /&gt;(SELECT&amp;nbsp;TOP&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;ISNULL(SUM(CASE&amp;nbsp;WHEN&amp;nbsp;C.leaf_offset&amp;nbsp;&amp;gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;max_length&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;END),&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&amp;nbsp;FROM&lt;br /&gt;sys.system_internals_partition_columns&amp;nbsp;C&amp;nbsp;WHERE&amp;nbsp;cols.partition_id&amp;nbsp;=C.partition_id&amp;nbsp;And&amp;nbsp;C.leaf_null_bit&amp;lt;cols.leaf_null_bit)+&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&amp;nbsp;AS&amp;nbsp;[Column&amp;nbsp;value&amp;nbsp;Size],&lt;br /&gt;syscolumns.length&amp;nbsp;AS&amp;nbsp;[Column&amp;nbsp;Length]&lt;br /&gt;&lt;br /&gt;,CASE&amp;nbsp;WHEN&amp;nbsp;SUBSTRING([nullBitMap],&amp;nbsp;cols.leaf_null_bit,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)=&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;NULL&amp;nbsp;ELSE&lt;br /&gt;SUBSTRING&lt;br /&gt;(&lt;br /&gt;Rowlogcontents,(SELECT&amp;nbsp;TOP&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;ISNULL(SUM(CASE&amp;nbsp;WHEN&amp;nbsp;C.leaf_offset&amp;nbsp;&amp;gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;max_length&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;END),&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&amp;nbsp;FROM&lt;br /&gt;sys.system_internals_partition_columns&amp;nbsp;C&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;cols.partition_id&amp;nbsp;=C.partition_id&amp;nbsp;And&amp;nbsp;C.leaf_null_bit&amp;lt;cols.leaf_null_bit)+&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;br /&gt;,syscolumns.length)&amp;nbsp;END&amp;nbsp;AS&amp;nbsp;hex_Value&lt;br /&gt;&lt;br /&gt;FROM&amp;nbsp;@DeletedRecords&amp;nbsp;A&lt;br /&gt;Inner&amp;nbsp;Join&amp;nbsp;sys.allocation_units&amp;nbsp;allocunits&amp;nbsp;ON&amp;nbsp;A.[AllocUnitId]=allocunits.[Allocation_Unit_Id]&lt;br /&gt;INNER&amp;nbsp;JOIN&amp;nbsp;sys.partitions&amp;nbsp;partitions&amp;nbsp;ON&amp;nbsp;(allocunits.type&amp;nbsp;IN&amp;nbsp;(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;AND&amp;nbsp;partitions.hobt_id&amp;nbsp;=&amp;nbsp;allocunits.container_id)&amp;nbsp;OR&amp;nbsp;(allocunits.type&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;AND&amp;nbsp;partitions.partition_id&amp;nbsp;=&amp;nbsp;allocunits.container_id)&lt;br /&gt;INNER&amp;nbsp;JOIN&amp;nbsp;sys.system_internals_partition_columns&amp;nbsp;cols&amp;nbsp;ON&amp;nbsp;cols.partition_id&amp;nbsp;=&amp;nbsp;partitions.partition_id&lt;br /&gt;LEFT&amp;nbsp;OUTER&amp;nbsp;JOIN&amp;nbsp;syscolumns&amp;nbsp;ON&amp;nbsp;syscolumns.id&amp;nbsp;=&amp;nbsp;partitions.object_id&amp;nbsp;AND&amp;nbsp;syscolumns.colid&amp;nbsp;=&amp;nbsp;cols.partition_column_id&lt;br /&gt;WHERE&amp;nbsp;leaf_offset&amp;gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;)&lt;br /&gt;&lt;br /&gt;--Converting&amp;nbsp;data&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;Hexvalue&amp;nbsp;to&amp;nbsp;its&amp;nbsp;orgional&amp;nbsp;datatype.&lt;br /&gt;--Implemented&amp;nbsp;datatype&amp;nbsp;conversion&amp;nbsp;mechanism&amp;nbsp;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&amp;nbsp;each&amp;nbsp;datatype&lt;br /&gt;&lt;br /&gt;INSERT&amp;nbsp;INTO&amp;nbsp;#temp_Data&lt;br /&gt;SELECT&amp;nbsp;NAME,&lt;br /&gt;CASE&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;IN&amp;nbsp;(&lt;span style="color: #800080;"&gt;231&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;239&lt;/span&gt;)&amp;nbsp;THEN&amp;nbsp;&amp;nbsp;LTRIM(RTRIM(CONVERT(NVARCHAR(max),hex_Value)))&amp;nbsp;&amp;nbsp;--NVARCHAR&amp;nbsp;,NCHAR&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;IN&amp;nbsp;(&lt;span style="color: #800080;"&gt;167&lt;/span&gt;,&lt;span style="color: #800080;"&gt;175&lt;/span&gt;)&amp;nbsp;THEN&amp;nbsp;&amp;nbsp;LTRIM(RTRIM(CONVERT(VARCHAR(max),REPLACE(hex_Value,&amp;nbsp;&lt;span style="color: #800080;"&gt;0x00&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0x20&lt;/span&gt;))))&amp;nbsp;&amp;nbsp;--VARCHAR,CHAR&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;48&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),&amp;nbsp;CONVERT(TINYINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(hex_Value))))&amp;nbsp;--TINY&amp;nbsp;INTEGER&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;52&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),&amp;nbsp;CONVERT(SMALLINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;REVERSE&amp;nbsp;(hex_Value))))&amp;nbsp;--SMALL&amp;nbsp;INTEGER&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;56&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),&amp;nbsp;CONVERT(INT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;4&lt;/span&gt;),&amp;nbsp;REVERSE(hex_Value))))&amp;nbsp;--&amp;nbsp;INTEGER&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;127&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),&amp;nbsp;CONVERT(BIGINT,&amp;nbsp;CONVERT(BINARY(&lt;span style="color: #800080;"&gt;8&lt;/span&gt;),&amp;nbsp;REVERSE(hex_Value))))--&amp;nbsp;BIG&amp;nbsp;INTEGER&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;61&lt;/span&gt;&amp;nbsp;Then&amp;nbsp;CONVERT(VARCHAR(MAX),CONVERT(DATETIME,CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),REVERSE&amp;nbsp;(hex_Value))),&lt;span style="color: #800080;"&gt;100&lt;/span&gt;)&amp;nbsp;--DATETIME&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&lt;span style="color: #800080;"&gt;58&lt;/span&gt;&amp;nbsp;Then&amp;nbsp;CONVERT(VARCHAR(MAX),CONVERT(SMALLDATETIME,CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),REVERSE(hex_Value))),&lt;span style="color: #800080;"&gt;100&lt;/span&gt;)&amp;nbsp;--SMALL&amp;nbsp;DATETIME&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;108&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),&amp;nbsp;CAST(CONVERT(NUMERIC(&lt;span style="color: #800080;"&gt;38&lt;/span&gt;,&lt;span style="color: #800080;"&gt;30&lt;/span&gt;),&amp;nbsp;CONVERT(VARBINARY,CONVERT(VARBINARY,xprec)+CONVERT(VARBINARY,xscale))+CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;),&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&amp;nbsp;+&amp;nbsp;hex_Value)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;FLOAT))&amp;nbsp;---&amp;nbsp;NUMERIC&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;In(&lt;span style="color: #800080;"&gt;60&lt;/span&gt;,&lt;span style="color: #800080;"&gt;122&lt;/span&gt;)&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),Convert(MONEY,Convert(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),Reverse(hex_Value))),&lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&amp;nbsp;--MONEY,SMALLMONEY&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&lt;span style="color: #800080;"&gt;106&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),&amp;nbsp;CAST(CONVERT(Decimal(&lt;span style="color: #800080;"&gt;38&lt;/span&gt;,&lt;span style="color: #800080;"&gt;34&lt;/span&gt;),&amp;nbsp;CONVERT(VARBINARY,Convert(VARBINARY,xprec)+CONVERT(VARBINARY,xscale))+CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;),&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&amp;nbsp;+&amp;nbsp;hex_Value)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;FLOAT))&amp;nbsp;---&amp;nbsp;DECIMAL&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;104&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),CONVERT&amp;nbsp;(BIT,CONVERT(BINARY(&lt;span style="color: #800080;"&gt;1&lt;/span&gt;),&amp;nbsp;hex_Value)%&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))&amp;nbsp;&amp;nbsp;--&amp;nbsp;BIT&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&lt;span style="color: #800080;"&gt;62&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&amp;nbsp;RTRIM(LTRIM(STR(CONVERT(FLOAT,SIGN(CAST(CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),Reverse(hex_Value))&amp;nbsp;AS&amp;nbsp;BIGINT))&amp;nbsp;*&amp;nbsp;(&lt;span style="color: #800080;"&gt;1.0&lt;/span&gt;&amp;nbsp;+&amp;nbsp;(CAST(CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),Reverse(hex_Value))&amp;nbsp;AS&amp;nbsp;BIGINT)&amp;nbsp;&amp;amp;&amp;nbsp;&lt;span style="color: #800080;"&gt;0x000FFFFFFFFFFFFF&lt;/span&gt;)&amp;nbsp;*&amp;nbsp;POWER(CAST(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;AS&amp;nbsp;FLOAT),&amp;nbsp;-&lt;span style="color: #800080;"&gt;52&lt;/span&gt;))&amp;nbsp;*&amp;nbsp;POWER(CAST(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;AS&amp;nbsp;FLOAT),((CAST(CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),Reverse(hex_Value))&amp;nbsp;AS&amp;nbsp;BIGINT)&amp;nbsp;&amp;amp;&amp;nbsp;&lt;span style="color: #800080;"&gt;0x7ff0000000000000&lt;/span&gt;)&amp;nbsp;/&amp;nbsp;EXP(&lt;span style="color: #800080;"&gt;52&lt;/span&gt;&amp;nbsp;*&amp;nbsp;LOG(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))-&lt;span style="color: #800080;"&gt;1023&lt;/span&gt;))),&lt;span style="color: #800080;"&gt;53&lt;/span&gt;,LEN(hex_Value))))&amp;nbsp;---&amp;nbsp;FLOAT&lt;br /&gt;&amp;nbsp;When&amp;nbsp;system_type_id&amp;nbsp;=&lt;span style="color: #800080;"&gt;59&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&amp;nbsp;Left(LTRIM(STR(CAST(SIGN(CAST(Convert(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),REVERSE(hex_Value))&amp;nbsp;AS&amp;nbsp;BIGINT))*&amp;nbsp;(&lt;span style="color: #800080;"&gt;1.0&lt;/span&gt;&amp;nbsp;+&amp;nbsp;(CAST(CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),Reverse(hex_Value))&amp;nbsp;AS&amp;nbsp;BIGINT)&amp;nbsp;&amp;amp;&amp;nbsp;&lt;span style="color: #800080;"&gt;0x007FFFFF&lt;/span&gt;)&amp;nbsp;*&amp;nbsp;POWER(CAST(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;AS&amp;nbsp;Real),&amp;nbsp;-&lt;span style="color: #800080;"&gt;23&lt;/span&gt;))&amp;nbsp;*&amp;nbsp;POWER(CAST(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&amp;nbsp;AS&amp;nbsp;Real),(((CAST(CONVERT(VARBINARY(&lt;span style="color: #800080;"&gt;8000&lt;/span&gt;),Reverse(hex_Value))&amp;nbsp;AS&amp;nbsp;INT)&amp;nbsp;)&amp;amp;&amp;nbsp;&lt;span style="color: #800080;"&gt;0x7f800000&lt;/span&gt;)/&amp;nbsp;EXP(&lt;span style="color: #800080;"&gt;23&lt;/span&gt;&amp;nbsp;*&amp;nbsp;LOG(&lt;span style="color: #800080;"&gt;2&lt;/span&gt;))-&lt;span style="color: #800080;"&gt;127&lt;/span&gt;))AS&amp;nbsp;REAL),&lt;span style="color: #800080;"&gt;23&lt;/span&gt;,&lt;span style="color: #800080;"&gt;23&lt;/span&gt;)),&lt;span style="color: #800080;"&gt;8&lt;/span&gt;)&amp;nbsp;--Real&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;In&amp;nbsp;(&lt;span style="color: #800080;"&gt;165&lt;/span&gt;,&lt;span style="color: #800080;"&gt;173&lt;/span&gt;)&amp;nbsp;THEN&amp;nbsp;(CASE&amp;nbsp;WHEN&amp;nbsp;CHARINDEX(0x,cast(&lt;span style="color: #800000;"&gt;''&lt;/span&gt;&amp;nbsp;AS&amp;nbsp;XML).value(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:hexBinary(sql:column("hex_Value"))&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;VARBINARY(8000)&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;))&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;0x&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&amp;nbsp;ELSE&amp;nbsp;&lt;span style="color: #800000;"&gt;''&lt;/span&gt;&amp;nbsp;END)&amp;nbsp;+cast(&lt;span style="color: #800000;"&gt;''&lt;/span&gt;&amp;nbsp;AS&amp;nbsp;XML).value(&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;xs:hexBinary(sql:column("hex_Value"))&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;varchar(max)&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;)&amp;nbsp;--&amp;nbsp;BINARY,VARBINARY&lt;br /&gt;&amp;nbsp;WHEN&amp;nbsp;system_type_id&amp;nbsp;=&lt;span style="color: #800080;"&gt;36&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;CONVERT(VARCHAR(MAX),CONVERT(UNIQUEIDENTIFIER,hex_Value))&amp;nbsp;--UNIQUEIDENTIFIER&lt;br /&gt;&lt;br /&gt;&amp;nbsp;END&amp;nbsp;AS&amp;nbsp;FieldValue&lt;br /&gt;,[Rowlogcontents]&lt;br /&gt;FROM&amp;nbsp;CTE&amp;nbsp;ORDER&amp;nbsp;BY&amp;nbsp;nullbit&lt;br /&gt;&lt;br /&gt;--Create&amp;nbsp;the&amp;nbsp;column&amp;nbsp;name&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;the&amp;nbsp;same&amp;nbsp;order&amp;nbsp;to&amp;nbsp;&lt;span style="color: #0000FF;"&gt;do&lt;/span&gt;&amp;nbsp;pivot&amp;nbsp;table.&lt;br /&gt;&lt;br /&gt;DECLARE&amp;nbsp;@FieldName&amp;nbsp;VARCHAR(max)&lt;br /&gt;SET&amp;nbsp;@FieldName&amp;nbsp;=&amp;nbsp;STUFF(&lt;br /&gt;(&lt;br /&gt;SELECT&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&amp;nbsp;+&amp;nbsp;CAST(QUOTENAME([Name])&amp;nbsp;AS&amp;nbsp;VARCHAR(MAX))&amp;nbsp;FROM&amp;nbsp;syscolumns&amp;nbsp;WHERE&amp;nbsp;id=object_id(&lt;span style="color: #800000;"&gt;''&lt;/span&gt;&amp;nbsp;+&amp;nbsp;@SchemaName_n_TableName&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800000;"&gt;''&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;FOR&amp;nbsp;XML&amp;nbsp;PATH(&lt;span style="color: #800000;"&gt;''&lt;/span&gt;)&lt;br /&gt;),&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;''&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;--Finally&amp;nbsp;did&amp;nbsp;pivot&amp;nbsp;table&amp;nbsp;and&amp;nbsp;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;&amp;nbsp;the&amp;nbsp;data&amp;nbsp;back&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;the&amp;nbsp;same&amp;nbsp;format.&lt;br /&gt;SET&amp;nbsp;@sql&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;SELECT&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&amp;nbsp;+&amp;nbsp;@FieldName&amp;nbsp;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;nbsp;FROM&amp;nbsp;#temp_Data&amp;nbsp;PIVOT&amp;nbsp;(Min([FieldValue])&amp;nbsp;FOR&amp;nbsp;FieldName&amp;nbsp;IN&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&amp;nbsp;+&amp;nbsp;@FieldName&amp;nbsp;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;))&amp;nbsp;AS&amp;nbsp;pvt&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;--&lt;span style="color: #0000FF;"&gt;set&lt;/span&gt;&amp;nbsp;@sql&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;ok&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;;&lt;br /&gt;print&amp;nbsp;@FieldName;&lt;br /&gt;EXEC&amp;nbsp;sp_executesql&amp;nbsp;@sql&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GO&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2317278.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2012/01/09/2317278.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/11/30/2268577.html</id><title type="text">git 基本命令</title><summary type="text">1.设置ignore的文件和文件夹：先进行全局设置：git config --global core.excludesfile ~/.gitignore再在根目录下添加名为“.gitignore&amp;quot;的文件在该文件中，添加需要ignore的文件名或文件夹，如：a.txt.\testignore\.\b\bin\这样就排除了a.txt,testignore文件夹，b\bin文件夹这三个。2.待补充</summary><published>2011-11-30T01:20:00Z</published><updated>2011-11-30T01:20:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/11/30/2268577.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/11/30/2268577.html"/><content type="html">&lt;p&gt;1.设置ignore的文件和文件夹：&lt;/p&gt;&lt;p&gt;先进行全局设置：git config --global core.excludesfile ~/.gitignore&amp;nbsp;&lt;/p&gt;&lt;p&gt;再在根目录下添加名为&amp;#8220;.gitignore"的文件&lt;/p&gt;&lt;p&gt;在该文件中，添加需要ignore的文件名或文件夹，如：&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;div&gt;a.txt&lt;/div&gt;&lt;div&gt;.\testignore\&lt;/div&gt;&lt;div&gt;.\b\bin\&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这样就排除了a.txt,testignore文件夹，b\bin文件夹这三个。&lt;/p&gt;&lt;p&gt;2.待补充&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2268577.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/11/30/2268577.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/09/29/cross-domain-cookie-IE-bug.html</id><title type="text">Cookie跨域 IE之Bug篇</title><summary type="text">跨域请求，一直是个老生长谈的话题了。今天和同事讨论跨域问题时，偶然发现在IE在跨域请求时的一个Bug，特记录，并分享。跨二级域名就不说了，下面的各个案例是在跨一级域名时出现的，以下是问题重现步骤。</summary><published>2011-09-29T07:43:00Z</published><updated>2011-09-29T07:43:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/09/29/cross-domain-cookie-IE-bug.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/09/29/cross-domain-cookie-IE-bug.html"/><content type="html">&lt;p&gt;cookie跨域的问题，是一个老生长谈的话题了，在博客园中一搜就能搜出一大把相关文章。&lt;/p&gt;&lt;p&gt;今天和同事讨论跨域问题时，偶然发现在IE在跨域请求时的一个Bug，特记录，并分享。&lt;/p&gt;&lt;p&gt;跨二级域名就不说了，下面的各个案例是在跨一级域名时出现的，以下是问题重现步骤。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 18pt;"&gt;准备工作&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在passport.com站点中有一个处理程序，我们暂且叫它sso.ashx，用来输出passport.com域名下的Id为userName的cookie&lt;/p&gt;&lt;p&gt;在appA.com站点中有一个页面,我们暂且叫它userInfo.aspx，用它来请求passport.com中的sso.ashx并获取它的输入。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;sso.ashx中关键代码如下：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;context.Response.ContentType&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;text/plain&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;HttpCookie&amp;nbsp;cookie&amp;nbsp;=&amp;nbsp;context.Request.Cookies[&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;userName&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;];&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&amp;nbsp;userName&amp;nbsp;=&amp;nbsp;cookie&amp;nbsp;==&amp;nbsp;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&amp;nbsp;?&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;""&lt;/span&gt;&amp;nbsp;:&amp;nbsp;cookie.Value;&lt;br /&gt;context.Response.Write(&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;var&amp;nbsp;user='&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;userName&amp;nbsp;+&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;';&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;);&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;appA.com的userInfo.aspx关键代码如下：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;src&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="http://passport.com/sso.ashx"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;document.write(user);&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);"&gt;user变量在sso.ashx在输出内容中定义&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;我们看到，预期的效果应该是，在passport.com中设置上id为userName的cookie之后，在访问&lt;a href="http://appa.com/userInfo.aspx"&gt;http://appA.com/userInfo.aspx&lt;/a&gt; 时，应该可以正常获取到这个cookie的值。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;案例一&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在passport.com站点下先添加一个&lt;span style="background-color: yellow;"&gt;过期时间不设置的&lt;/span&gt;userName cookie,比如值为"Jim Green",然后在appA.com站点的页面userInfo.aspx中访问passport.com站点中的sso.ashx。在IE、火狐、Chrome下，均可以正确获取。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;添加cookie代码：&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;Response.Cookies.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;HttpCookie(&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;userName&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;Jim&amp;nbsp;Green&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;));&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;案例二&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;清除passport.com站点下的所有cookie，添加一个&lt;span style="background-color: yellow;"&gt;设置了过期时间&lt;/span&gt;为当前日期+4小时的cookie,比如值为&amp;#8220;John&amp;#8221;,然后在appA.com站点的页面userInfo.aspx中访问passport.com站点的sso.ashx,在火狐、Chrome下正常，均可以正常访问，在IE下，完蛋了，无法访问。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;添加cookie代码：&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;Response.Cookies.Add(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&amp;nbsp;HttpCookie(&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;userName&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(128, 0, 0);"&gt;"John&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;)&amp;nbsp;{&amp;nbsp;Expires&amp;nbsp;=&amp;nbsp;DateTime.Now.AddHours(&lt;span style="color: rgb(128, 0, 128);"&gt;4&lt;/span&gt;)&amp;nbsp;});&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;案例三&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;同案例二，将passport.com和appA.com两个站点添加到信任站点，并将信任站点的安全级别设置为低，然后访问appA.com站点的userInfo.aspx，不错，也可以正确获取。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;结语&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;通过以上三个案例，可以得知，IE对于跨域请求cookie做了比较严格的限制，也许不叫严格，叫变态。或者，我们可以叫它为Bug。&lt;/p&gt;&lt;p&gt;不然，如何说你IE就是不允许跨域访问，或者说只有在设置安全级别为低的请问下才可以跨域访问，那么为什么一个不设置过期时间的cookie却可以在任何级别下都可以被跨域呢？&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;如何既要设置过期时间，又要在IE下可以跨域访问，怎么办？可以这样做：在appA.com站点的userInfo.aspx的页面响应头中，加上P3P这个响应头。加上之后，再请求passport.com站点的sso.ashx时，就会将passport.com站点下的cookie带过去,在passport.com的sso.ashx中也可以获取到已定义cookie了。&amp;nbsp;&lt;/p&gt;&lt;p&gt;这么多年过去了，IE依然保持着自己的一套标准。 &#xD;
&lt;/p&gt;&lt;p&gt;淘宝的SSO登录，在IE下是存在点小问题的。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;附P3P响应头：&lt;/p&gt;&lt;p&gt;&lt;span style="font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; text-align: left; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; background-color: rgb(239, 239, 239); -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" &gt;P3P: CP="NON DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa HISa TELa OTPa OUR UNRa IND UNI COM NAV INT DEM CNT PRE LOC&amp;#8220;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;参考&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;P3P概念：&amp;nbsp;&lt;a href="http://wiki.chinabaike.com/index.php?doc-view-42793"&gt;http://wiki.chinabaike.com/index.php?doc-view-42793&lt;/a&gt;&lt;/p&gt;&lt;p&gt;跨二级域名： &lt;a href="http://www.cnblogs.com/silicon-fado/archive/2009/03/15/1412226.html"&gt;http://www.cnblogs.com/silicon-fado/archive/2009/03/15/1412226.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#223355"&gt;P3P解决cookie存取的跨域问题&lt;/font&gt;：&lt;a href="http://www.cnblogs.com/love2wllw/archive/2010/04/09/1708585.html"&gt;http://www.cnblogs.com/love2wllw/archive/2010/04/09/1708585.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2195529.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/09/29/cross-domain-cookie-IE-bug.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/06/13/2079749.html</id><title type="text">JS实现两张图片卷轴的切换效果</title><summary type="text">效果参见：http://weitwo.com/home.htm引入jQuery后，再引入如下JS:$(document).ready(function(){varslidePicture=newsliderPicture();slidePicture.containerId=&amp;#39;container&amp;#39;;slidePicture.frontId=&amp;#39;front&amp;#39;;slidePicture.minFrontWidth=100;slidePicture.load();});functionsliderPicture(){this.containerId=&amp;#39;&amp;#39;</summary><published>2011-06-13T07:24:00Z</published><updated>2011-06-13T07:24:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/06/13/2079749.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/06/13/2079749.html"/><content type="html">&lt;p&gt;效果参见：&#xD;
&lt;a href="http://weitwo.com/home.htm"&gt;http://weitwo.com/home.htm&lt;/a&gt;&#xD;
&#xD;
引入jQuery后，&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;再引入如下JS:&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$(document).ready(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;slidePicture&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;sliderPicture();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slidePicture.containerId&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;container&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slidePicture.frontId&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;front&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slidePicture.minFrontWidth&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;100&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;slidePicture.load();&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;sliderPicture()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.containerId&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.frontId&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.minFrontWidth&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;200&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.load&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;()&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;container&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;$(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;#&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.containerId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;front&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;$(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;#&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.frontId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;minWith&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.minFrontWidth;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container.mousemove(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;(e)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;offsetLeft&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;container.prop(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;offsetLeft&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;parentWidth&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;container.prop(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;clientWidth&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;left&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;e.clientX&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;offsetLeft;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;width&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;parentWidth&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;left;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;(width&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;minWith)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;front.width(width);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;font style="background-color: rgb(51, 153, 255);"&gt;添加如下样式：&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;#container&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;url('http://photocdn.sohu.com/20110527/Img308750491.jpg')&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;90%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;200px&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;0px&amp;nbsp;auto&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;#front&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;right&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;url('http://news3.xinhuanet.com/auto/2005-07/06/xinsrc_3520702061714562873521.jpg')&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background-position&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;right&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;30%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;100%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;#splitter&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;#000000&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;100%&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;left&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;5px&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;添加如下HTML：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="container"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="front"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;span&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="splitter"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;span&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;即可实现图片卷轴的效果。&lt;/p&gt;&lt;font style="background-color: rgb(51, 153, 255);"&gt;&lt;/font&gt;&lt;p&gt;&lt;font style="background-color: rgb(51, 153, 255);"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2079749.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/06/13/2079749.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/05/28/2061065.html</id><title type="text">配置Apache Httpd Server 2.2 Virtual Host UrlRewrite</title><summary type="text">配置Apache httpd server 2.2 Virtual Host:最简单的方法：一、打开httpd.conf，找到：#Include conf/extra/httpd-vhosts.conf取消这一行的注释，即删除前面的#二、打开 conf/extra/httpd-vhosts.conf比如要添加一个 uri 为 local.weitwo.com的virtual host,映射到本机的80端口，那么修改或者复制example中的&amp;lt;VirtualHost&amp;gt;&amp;lt;/VirtualHost&amp;gt;节点，修改其中的ServerName为 local.weitwo.com 即可</summary><published>2011-05-28T12:59:00Z</published><updated>2011-05-28T12:59:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/28/2061065.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/28/2061065.html"/><content type="html">&lt;p&gt;配置Apache httpd server 2.2 Virtual Host:&lt;/p&gt;&lt;p&gt;最简单的方法：&lt;/p&gt;&lt;p&gt;一、打开httpd.conf，找到：&lt;/p&gt;&lt;p&gt;#Include conf/extra/httpd-vhosts.conf&lt;/p&gt;&lt;p&gt;取消这一行的注释，即删除前面的#&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;二、打开 conf/extra/httpd-vhosts.conf&lt;/p&gt;&lt;p&gt;比如要添加一个 uri 为 local.weitwo.com的virtual host,映射到本机的80端口，那么修改或者复制example中的&amp;lt;VirtualHost&amp;gt;&amp;lt;/VirtualHost&amp;gt;节点，&lt;/p&gt;&lt;p&gt;修改其中的ServerName为 local.weitwo.com 即可&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;VirtualHost&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;*:80&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ServerAdmin&amp;nbsp;t@local.weitwo.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DocumentRoot&amp;nbsp;"D:/Project/PHP/WeiTwoWebsite"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ServerName&amp;nbsp;local.weitwo.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ErrorLog&amp;nbsp;"logs/local.weitwo.com.log"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CustomLog&amp;nbsp;"logs/t.weitwo.com-access.log"&amp;nbsp;common&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;VirtualHost&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;然后再修改本机的host文件， 位于system32/driver/etc下，增加： 127.0.0.1 local.weitwo.com&lt;/p&gt;&lt;p&gt;此时即可在本机访问local.weitwo.com了&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;二、为VirtualHost添加 url rewrite&lt;/p&gt;&lt;p&gt;1.在httpd.conf中，找到如下行&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;#LoadModule rewrite_module modules/mod_rewrite.so&lt;/p&gt;&lt;p&gt;取消其注释，即删除前面的&amp;#8220;#&amp;#8221;&lt;/p&gt;&lt;p&gt;2.在VirtualHost中，添加Directory节点，指定AllowOverride为All，如果你想通过.htaccess中写rewrite规则，就不需要再做什么了，如果你想直接在conf文件中写rewrite rule,直接在Directory节点中写rewrite规则即可。&lt;/p&gt;&lt;p&gt;最终的VirtualHost像下面这样：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;VirtualHost&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;*:80&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ServerAdmin&amp;nbsp;t@local.weitwo.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DocumentRoot&amp;nbsp;"D:/Project/PHP/WeiTwoWebsite"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ServerName&amp;nbsp;local.weitwo.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ErrorLog&amp;nbsp;"logs/local.weitwo.com.log"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CustomLog&amp;nbsp;"logs/t.weitwo.com-access.log"&amp;nbsp;common&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;Directory&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"D:/Project/PHP/WeiTwoWebsite"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#Options&amp;nbsp;Indexes&amp;nbsp;FollowSymLinks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllowOverride&amp;nbsp;All&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#RewriteEngine&amp;nbsp;on&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#RewriteRule&amp;nbsp;^c.php$&amp;nbsp;a.html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;Directory&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;VirtualHost&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;记录之。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2061065.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/05/28/2061065.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/05/25/2057153.html</id><title type="text">Visual studio 2010 工具箱不可用解决方案</title><summary type="text">打开文件浏览器点击“工具”，在“文件夹选项”中设置为“显示隐藏文件和文件夹”2. 浏览到以下目录：C:\Users\当前用户名\AppData\Local\Microsoft\VisualStudio\9.0 (Vista,win7)C:\Documents and Settings\当前用户名\Local Settings\Application Data\Microsoft\VisualStudio\10.0 3. 删&amp;quot;toolbox.tbd&amp;quot;, &amp;quot;toolboxIndex.tbd&amp;quot;, &amp;quot;toolbox_reset.tbd&amp;quot;, &amp;</summary><published>2011-05-25T10:01:00Z</published><updated>2011-05-25T10:01:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/25/2057153.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/25/2057153.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&lt;p&gt;打开文件浏览器点击&amp;#8220;工具&amp;#8221;，在&amp;#8220;文件夹选项&amp;#8221;中设置为&amp;#8220;显示隐藏文件和文件夹&amp;#8221;2. 浏览到以下目录：C:\Users\当前用户名\AppData\Local\Microsoft\VisualStudio\9.0&amp;nbsp; (Vista,win7)&lt;br /&gt;C:\Documents and Settings\当前用户名\Local Settings\Application Data\Microsoft\VisualStudio\10.0 &lt;/p&gt;&lt;p&gt;3. 删"toolbox.tbd", "toolboxIndex.tbd", "toolbox_reset.tbd", "toolboxIndex_reset.tbd"四个文件&lt;br /&gt;重启动VS,即可&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2057153.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/05/25/2057153.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/05/23/2054550.html</id><title type="text">使用正则表达式匹配嵌套Html标签</title><summary type="text">概述正则表达式是做文本解析工作必不可少的技能。如Web服务器日志分析，网页前端开发等。很多高级文本编辑器都支持正则表达式的一个子集，熟练掌握正则表达式，经常能够使你的一些工作事半功倍。例如统计代码行数，只需一个正则就搞定。嵌套Html标签的匹配是正则表达式应用中一个比较难的话题，因为它涉及到的正则语法比较多，也比较难。因此也就更有研究的价值。思路任何复杂的正则表达式都是由简单的子表达式组成的，要想写出复杂的正则来，一方面需要有化繁为简的功底，另外一方面，我们需要从正则引擎的角度去思考问题。关于正则引擎的原理，推荐《Mastering Regular Expression》中文名叫《精通正则表.</summary><published>2011-05-23T09:49:00Z</published><updated>2011-05-23T09:49:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/23/2054550.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/23/2054550.html"/><content type="html">&#xD;
 &#xD;
&lt;div id="cnblogs_post_body"&gt;&lt;span style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; webkit-text-size-adjust: auto; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-stroke-width: 0px;" &gt;&lt;span style="line-height: 18px; font-family: Arial, Simsun, Tahoma; font-size: 13px;" &gt;&lt;br /&gt;&lt;h2 style="margin: 5px 0px 10px; padding: 5px 5px 5px 10px; color: white; letter-spacing: 1px; font-family: Arial, Simsun; font-size: 16px; font-weight: 300; border-bottom-color: gray; border-bottom-width: 2px; display: block; background-color: rgb(102, 102, 102);"&gt;概述&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;正则表达式是做文本解析工作必不可少的技能。如Web服务器日志分析，网页前端开发等。很多高级文本编辑器都支持正则表达式的一个子集，熟练掌握正则表达式，经常能够使你的一些工作事半功倍。例如&lt;a style="margin: 0px; padding: 0px; color: rgb(41, 112, 166); text-decoration: none;" href="http://www.imkevinyang.com/2009/05/visual-studio%e7%bb%9f%e8%ae%a1%e6%9c%89%e6%95%88%e4%bb%a3%e7%a0%81%e8%a1%8c%e6%95%b0.html" target="_blank"&gt;统计代码行数&lt;/a&gt;，只需一个正则就搞定。嵌套Html标签的匹配是正则表达式应用中一个比较难的话题，因为它涉及到的正则语法比较多，也比较难。因此也就更有研究的价值。&lt;/p&gt;&lt;br /&gt;&lt;h2 style="margin: 5px 0px 10px; padding: 5px 5px 5px 10px; color: white; letter-spacing: 1px; font-family: Arial, Simsun; font-size: 16px; font-weight: 300; border-bottom-color: gray; border-bottom-width: 2px; display: block; background-color: rgb(102, 102, 102);"&gt;思路&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;任何复杂的正则表达式都是由简单的子表达式组成的，要想写出复杂的正则来，一方面需要有化繁为简的功底，另外一方面，我们需要从正则引擎的角度去思考问题。关于正则引擎的原理，推荐《Mastering &lt;br /&gt;Regular Expression》中文名叫《精通正则表达式》。挺不错的一本书。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;OK，先确定我们要解决的问题&amp;#8212;&amp;#8212;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0);"&gt;从一段Html文本中找出特定id的标签的innerHTML&lt;/span&gt;&lt;/strong&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;这里面最大的难点就是，Html标签是支持嵌套的，怎么能够找到指定标签相对应的闭合标签呢？&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;我们可以这样想，&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0);"&gt;先匹配最前面的起始标签，假设是div吧（&amp;lt;div），接着一旦遇到嵌套div，就&amp;#8220;压入堆栈&amp;#8221;，后面如果遇到div闭合标签了，就&amp;#8220;弹出堆栈&amp;#8221;。如果遇到闭合标签的时候，堆栈里面已经没有东西了，那么匹配结束，此结束标签为正确的闭合标签&lt;/span&gt;&lt;/strong&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;我之所以能够这样去思考，是因为我了解过正则的特性，我知道正则中的平衡组能够实现我刚才说的&amp;#8220;堆栈&amp;#8221;操作。所以，如果我们要编写复杂正则表达式，需要对正则的一些高级特性至少有所了解，这样我们思考问题才有个方向。&lt;/p&gt;&lt;br /&gt;&lt;h2 style="margin: 5px 0px 10px; padding: 5px 5px 5px 10px; color: white; letter-spacing: 1px; font-family: Arial, Simsun; font-size: 16px; font-weight: 300; border-bottom-color: gray; border-bottom-width: 2px; display: block; background-color: rgb(102, 102, 102);"&gt;实现&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;这里假设我们要匹配的文本是一段合法的Html文本。下面这段Html代码是从我的博客上拷贝下来的，作为我们的测试文本。我们要匹配的就是footer这个div的innerHTML，同时把标签名也捕获下来。&lt;/p&gt;&lt;pre &gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;div&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;style&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="background-color:gray;"&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;id&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="footer"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;id&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="gotop"&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;href&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="#"&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;onclick&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="MGJS.goTop();return false;"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;Top&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;id&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="powered"&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;href&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="http://wordpress.org/"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;WordPress&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;div&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;id&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="copyright"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
        Copyright &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;&amp;amp;copy;&lt;/span&gt; 2009 简单生活 &amp;#8212;&amp;#8212; Kevin Yang的博客&#xD;
    &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;div&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
    &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;div&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;id&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="themeinfo"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
        Theme by &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;href&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="http://www.neoease.com/"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;mg12&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;. Valid &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;href&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="http://validator.w3.org/check?uri=referer"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;XHTML 1.1&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
        and &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt; &lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);" &gt;href&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;="http://jigsaw.w3.org/css-validator/"&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;CSS 3&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;a&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;.&#xD;
    &lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;div&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&#xD;
&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);" &gt;div&lt;/span&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);" &gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;这里我们需要借助&lt;a style="margin: 0px; padding: 0px; color: rgb(41, 112, 166); text-decoration: none;" href="http://www.imkevinyang.com/2009/07/%e3%80%90%e6%8e%a8%e8%8d%90%e3%80%91%e4%bd%bf%e7%94%a8ultrapico-expresso%e5%ad%a6%e4%b9%a0%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f.html" target="_blank"&gt;Expresso&lt;/a&gt;工具来构建和测试编写的正则表达式。&lt;/p&gt;&lt;br /&gt;&lt;h2 style="margin: 5px 0px 10px; padding: 5px 5px 5px 10px; color: white; letter-spacing: 1px; font-family: Arial, Simsun; font-size: 16px; font-weight: 300; border-bottom-color: gray; border-bottom-width: 2px; display: block; background-color: rgb(102, 102, 102);"&gt;匹配起始标签&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;起始标签特征很好提取，以尖括号打头，然后跟着一连串英文字母，然后一大串属性中（非尖括号字符）匹配id（不区分大小写）=footer。需要注意的是，footer可以被双引号或者单引号包裹，也可以什么都不加。正则如下：&lt;/p&gt;&lt;pre &gt;&amp;lt;(?&amp;lt;HtmlTag&amp;gt;[\w]+)[^&amp;gt;]*\s[iI][dD]=(?&amp;lt;Quote&amp;gt;["']?)footer(?(Quote)\k&amp;lt;Quote&amp;gt;)["']?[^&amp;gt;]*&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;上面的正则表达式需要做几点说明：&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;1. &lt;br /&gt;&amp;lt;尖括号在正则中算是一个特殊字符，在显式捕获分组中用它将分组名括起来。但是因为开头的尖括号在此上下文下并不会出现解析歧义，因此加不加转义符效果是一样的。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;2. &lt;br /&gt;(?&amp;lt;GroupName&amp;gt;RegEx)格式定义一个命名分组，我们在上面定义了一个HtmlTag的标签分组，用来存放匹配到的Html标签名。Quote分组是用来给后面的匹配使用的。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;3. &lt;br /&gt;(?(GroupName)Then|Else)是条件语句，表示当捕获到GroupName分组时执行Then匹配，否则执行Else匹配。上面的正则中，我们先尝试匹配footer字符串左边的引号，并将其存入LeftQuote分组中，然后在footer右侧进行条件解析，如果之前匹配到LeftQuote分组，那么右侧也应该批评LeftQuote分组。这样一来，我们就能精确匹配id的各种情况了。&lt;/p&gt;&lt;br /&gt;&lt;h2 style="margin: 5px 0px 10px; padding: 5px 5px 5px 10px; color: white; letter-spacing: 1px; font-family: Arial, Simsun; font-size: 16px; font-weight: 300; border-bottom-color: gray; border-bottom-width: 2px; display: block; background-color: rgb(102, 102, 102);"&gt;匹配闭合标签&lt;/strong&gt;&lt;/p&gt;&lt;pre &gt;((?&amp;lt;Nested&amp;gt;&amp;lt;\k&amp;lt;HtmlTag&amp;gt;[^&amp;gt;]*&amp;gt;)|&amp;lt;/\k&amp;lt;HtmlTag&amp;gt;&amp;gt;(?&amp;lt;-Nested&amp;gt;)|.*?)*&amp;lt;/\k&amp;lt;HtmlTag&amp;gt;&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;在成功匹配到起始标签之后，后面的Html文本可以分为三种情况：&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;A. &lt;br /&gt;匹配到嵌套div起始标签&amp;lt;div，这个时候，需要将其捕获到Nested分组。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;B. &lt;br /&gt;匹配到嵌套div起始标签的闭合标签，这个时候，需要将之前的Nested分组释放&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;C. &lt;br /&gt;其他任意文本。注意，需要使用.*?方式关闭贪婪匹配，否则最后的闭合标签可能会过度匹配&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;使用(RegEx1|RegEx2|RegEx3)*这种方式，可以将几个条件以或的形式组合起来，然后再取若干次匹配结果，最终再匹配闭合标签。其中(?&amp;lt;-Nested&amp;gt;)是表示释放之前捕获的Nested分组。确切的语法是(?&amp;lt;N-M&amp;gt;)即使用N分组替换掉M分组，如果N分组没有指定或不存在，则释放M分组。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;&lt;span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0); font-size: medium;"&gt;update&lt;/span&gt;：前面过于侧重分析了，最后没有给出一个完整的正则真是抱歉。&lt;/p&gt;&lt;pre &gt;&amp;lt;(?&amp;lt;HtmlTag&amp;gt;[\w]+)[^&amp;gt;]*\s[iI][dD]=(?&amp;lt;Quote&amp;gt;[&lt;span style="margin: 0px; padding: 0px; color: rgb(139, 0, 0);" &gt;"']?)footer(?(Quote)\k&amp;lt;Quote&amp;gt;)["&lt;/span&gt;']?[^&amp;gt;]*&amp;gt;((?&amp;lt;Nested&amp;gt;&amp;lt;\k&amp;lt;HtmlTag&amp;gt;[^&amp;gt;]*&amp;gt;)|&amp;lt;/\k&amp;lt;HtmlTag&amp;gt;&amp;gt;(?&amp;lt;-Nested&amp;gt;)|.*?)*&amp;lt;/\k&amp;lt;HtmlTag&amp;gt;&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;上面这个正则能够匹配任意id=footer的html标签。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;需要注意，&lt;strong&gt;此正则表达式需要设置SingleLine=true，这样点号才可以把换行符也匹配进去&lt;/strong&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 5px; padding: 0px;"&gt;对于domoxz &lt;br /&gt;的问题，如果要匹配p标签，那么只需将上述的正则中的&amp;lt;(?&amp;lt;HtmlTag&amp;gt;[\w]+)替换成&amp;lt;(?&amp;lt;HtmlTag&amp;gt;p)即可。&lt;/p&gt;&lt;span style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; webkit-text-size-adjust: auto; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-stroke-width: 0px;" &gt;&lt;span style="text-align: left; line-height: 18px; font-family: verdana, sans-serif; font-size: 12px;" &gt;&lt;br /&gt;&lt;h1 style='margin: 0px; padding: 0px 0px 0.5em 1.5em; font-family: "Microsoft yahei", verdana, sans-serif; font-size: 15px; border-bottom-color: rgb(220, 220, 220); border-bottom-width: 2px; border-bottom-style: solid;' &gt;正则表达式中的Multiline和Singleline&lt;/strong&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; webkit-text-size-adjust: auto; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-stroke-width: 0px;" &gt;&lt;span style="text-align: left; line-height: 21px; font-family: verdana, sans-serif; font-size: 15px;" &gt;&lt;br /&gt;&lt;p style="margin: 1em 0px 0.5em; padding: 0px;"&gt;&lt;span style="color: rgb(255, 0, 0); line-height: 21px;"&gt;Multiline&lt;/span&gt;&lt;span &gt; &lt;/span&gt;修饰的是^与$，就是说没有Multiline的时候，把^和$与当作每一行(\n结尾的)的开头和结束来匹配，有Multiline &lt;br /&gt;的时候是与整个字符串的开头和结尾匹配；&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 1em 0px 0.5em; padding: 0px;"&gt;&lt;span style="color: rgb(255, 0, 0); line-height: 21px;"&gt;Singleline&lt;/span&gt;&lt;span &gt; &lt;/span&gt;修饰的是'.'的时候，就是说有Singleline的时候匹配的是所有字符（包 &lt;br /&gt;括\n），没有Singleline的时候，匹配的是除\n外的所有字符。&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 1em 0px 0.5em; padding: 0px;"&gt;&lt;span style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; webkit-text-size-adjust: auto; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-stroke-width: 0px;" &gt;&lt;span style="line-height: 18px; font-family: Arial, Simsun, Tahoma; font-size: 13px;" &gt;&lt;span style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; webkit-text-size-adjust: auto; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-stroke-width: 0px;" &gt;&lt;span style="text-align: left; line-height: 18px; font-family: verdana, sans-serif; font-size: 12px;" &gt;&lt;span style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; webkit-text-size-adjust: auto; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-stroke-width: 0px;" &gt;&lt;span style="text-align: left; line-height: 21px; font-family: verdana, sans-serif; font-size: 15px;" &gt;因此&amp;lt;(?&amp;lt;HtmlTag&amp;gt;[\w]+)[^&amp;gt;]*\s[iI][dD]=(?&amp;lt;Quote&amp;gt;["']?)copyright(?(Quote)\k&amp;lt;Quote&amp;gt;)["']?[^&amp;gt;]*&amp;gt;((?&amp;lt;Nested&amp;gt;&amp;lt;\k&amp;lt;HtmlTag&amp;gt;[^&amp;gt;]*&amp;gt;)|&amp;lt;/\k&amp;lt;HtmlTag&amp;gt;&amp;gt;(?&amp;lt;-Nested&amp;gt;)|&lt;strong&gt;[\s\S]&lt;/strong&gt;*?)*&amp;lt;/\k&amp;lt;HtmlTag&amp;gt;&amp;gt;这个表达是就不受其限制了&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2054550.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/05/23/2054550.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/05/16/2047833.html</id><title type="text">Troubleshooting Visual Studio 2010 and QT 4.7 Integration</title><summary type="text">http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/I had some really weird issues while setting up Visual studio 2010 with Qt 4.7. The most important thing (that I stupidly didn’t realize) was the fact that you CANNOT use the VS2008 compiled librarie.</summary><published>2011-05-16T08:36:00Z</published><updated>2011-05-16T08:36:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/16/2047833.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/05/16/2047833.html"/><content type="html">&#xD;
 &#xD;
&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;a href="http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/"&gt;http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;I had some really weird issues while setting up Visual studio 2010 with Qt 4.7. The most important thing (that I stupidly didn&amp;#8217;t realize) was the fact that you CANNOT use the VS2008 compiled libraries and dll&amp;#8217;s (available on the Qt webpage) if you don&amp;#8217;t have VS2008 installed. The reason is because the Qt SDK you download is a debug build which is dependant on the VC9.0 DebugCRT, meaning it needs the Visual C++ 2008 Debug Runtime installed, which is NOT available as a redistributable installer. The only way to install the DebugCRT is to install the entirety of Visual Studio 2008.&lt;/p&gt;&lt;p&gt;The reason this was complicated to figure out was because most of the computers I installed it on &lt;strong&gt;had &lt;/strong&gt;VS2008 allready installed on it, so only a couple computers wouldn&amp;#8217;t compile properly. It also wasn&amp;#8217;t helped by the fact that the errors given by it were pretty esoteric. There also were some errors caused by different paths being set wrong, a list of some of there errors is just below.&lt;/p&gt;&lt;div id="_mcePaste"&gt;&lt;ul&gt;&lt;li&gt;The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.&lt;/li&gt;&lt;li&gt;This application has failed to start because the application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more details, please see the application event log.&lt;/li&gt;&lt;li&gt;Error MSB6006: &amp;#8220;cmd.exe&amp;#8221; exited with code 3.&amp;nbsp;&amp;nbsp;&amp;nbsp; C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;To solve these problems and get Qt working properly with VS2010 you have to compile QT from source, which means you&amp;#8217;ll have to download the &lt;a title="Source Zip" href="http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.1.zip"&gt;&lt;font color="#a8ef9d"&gt;4.7.1 source sdk&lt;/font&gt;&lt;/a&gt;. You&amp;#8217;ll also need to have the &lt;a title="Visual Studio Qt Add-in" href="http://qt.nokia.com/downloads/visual-studio-add-in" target="_blank"&gt;&lt;font color="#a8ef9d"&gt;Visual Studio Qt Add-in&lt;/font&gt;&lt;/a&gt; installed.&lt;/p&gt;&lt;p&gt;&lt;span id="more-24"&gt;&lt;/span&gt;I wrote a quick tutorial on how to compile it from source using Visual Studio 2010:&lt;br /&gt;&lt;a title="How to compile Qt" href="http://blog.paulnettleship.com/2010/11/11/compiling-qt-4-7-with-visual-studio-2010/"&gt;&lt;font color="#a8ef9d"&gt;http://blog.paulnettleship.com/2010/11/11/compiling-qt-4-7-with-visual-studio-2010/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After you have compiled qt, put the folder in your C:\Qt directory.&lt;/p&gt;&lt;p&gt;Then open up a Visual Studio project, and in the Qt menu select the &amp;#8220;Qt Options&amp;#8221; menu item.&lt;/p&gt;&lt;p&gt;When the window below opens up, add the newly compiled version and select it as the default Qt version (in the bottom dropdown).&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img  title="Capture" alt="" src="http://blog.paulnettleship.com/wp-content/uploads/2010/11/Capture1.png" width="442" height="360" /&gt;&lt;/p&gt;&lt;p&gt;Afterwards, right click the project(s) which are using Qt and select the Qt Project Settings option.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img  title="Project Menu" alt="" src="http://blog.paulnettleship.com/wp-content/uploads/2010/11/Capture21.png" width="397" height="221" /&gt;&lt;/p&gt;&lt;p&gt;A window should pop up showing the Qt details for that specific project. You then must choose the same version you just added as the project Qt version. I had some issues with the project not having the correct version set and it ended up causing the same errors.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img  title="Capture3" alt="" src="http://blog.paulnettleship.com/wp-content/uploads/2010/11/Capture32.png" width="407" height="246" /&gt;&lt;/p&gt;&lt;p&gt;Finally, you need to make sure the correct Qt version is in the system environment Path variable. So open the start menu, and type in the search bar &amp;#8220;environment&amp;#8221; and click the &amp;#8220;Edit the system environment variables&amp;#8221; item that will appear after a few seconds (note, this is only for windows 7, for windows XP you&amp;#8217;ll have to find this option in the control panel). After you click the option, click the &amp;#8220;Environment Variables&amp;#8230;&amp;#8221; button at the bottom.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img  title="Capture4" alt="" src="http://blog.paulnettleship.com/wp-content/uploads/2010/11/Capture41.png" width="394" height="436" /&gt;&lt;/p&gt;&lt;p&gt;Make sure that the path has a reference to the Qt bin directory of your newly compiled Qt build. It &lt;strong&gt;must&lt;/strong&gt; be the bin directory, and nothing else.&lt;/p&gt;&lt;p&gt;After all that is done, I&amp;#8217;d restart Visual Studio, reload your project, and it should be good to go.&lt;/p&gt;&lt;div &gt;&lt;/div&gt;&lt;p&gt;&lt;span &gt;&amp;#171; &lt;a href="http://blog.paulnettleship.com/2010/11/11/compiling-qt-4-7-with-visual-studio-2010/" rel="prev"&gt;&lt;font color="#a8ef9d"&gt;Compiling QT 4.7 With Visual Studio 2010&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2047833.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/05/16/2047833.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hanxianlong/archive/2011/04/22/2024917.html</id><title type="text">CLRProfiler V4 Released</title><summary type="text">CLRProfiler V4 is now publicly available. You may download from here: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=be2d842b-fdce-4600-8d32-a3cf74fda5e1This is of interest both to folks who want a free profiler to diagnose memory issues with their managed apps, and for folks who author</summary><published>2011-04-22T06:55:00Z</published><updated>2011-04-22T06:55:00Z</updated><author><name>韩现龙</name><uri>http://www.cnblogs.com/hanxianlong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hanxianlong/archive/2011/04/22/2024917.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hanxianlong/archive/2011/04/22/2024917.html"/><content type="html">&lt;div&gt;&lt;p&gt;CLRProfiler V4 is now publicly available.  You may download from here: &lt;/p&gt;&lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=be2d842b-fdce-4600-8d32-a3cf74fda5e1" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=be2d842b-fdce-4600-8d32-a3cf74fda5e1"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=be2d842b-fdce-4600-8d32-a3cf74fda5e1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is of interest both to folks who want a free profiler to diagnose memory issues with their managed apps, and for folks who author profilers of their own, and would like to look at source code of a real-world example of a profiler.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;If you just want to run it&amp;#8230;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Then the following new features will be of interest to you:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;CLRProfiler V4 allows you to profile managed code that uses .NET 2.0, 3.0, 3.5, or 4.0.  However, you must always have .NET 4.0 installed on your box in order to use CLRProfiler V4, as CLRProfiler itself contains managed code that depends on .NET 4.0 &lt;/li&gt;&lt;li&gt;CLRProfiler V4 can target &lt;strong&gt;Silverlight 4&lt;/strong&gt; apps. &lt;/li&gt;&lt;li&gt;CLRProfiler V4 may be used to &lt;strong&gt;attach to and detach from&lt;/strong&gt; live processes, to generate heap graphs.  (Note:  This feature requires the process to be running .NET 4.0, does not work against Silverlight, and does not allow gathering allocation call stacks.) &lt;/li&gt;&lt;li&gt;CLRProfiler V4 understands &lt;strong&gt;in-process side-by-side CLR instances&lt;/strong&gt;, and can allow you to pick which CLR instance from a given process to profile. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;If you want to write a profiler&amp;#8230;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Then you may look through the source code for examples of all the above features, including how to target Silverlight, use the attach / detach API, and how to implement the &amp;#8220;pick-one&amp;#8221; approach for in-process side-by-side CLR instances.&lt;/p&gt;&lt;p&gt;Also, CLRProfiler V4 consumes the new Enter3/Leave3/Tailcall3 signatures along with FunctionIDMapper2, so you can consult the source for examples of the naked assembly language wrappers.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Problems?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;If you encounter problems with CLRProfiler V4, the best place to go is our forum:&lt;/p&gt;&lt;p&gt;&lt;a title="http://social.msdn.microsoft.com/forums/en-US/netfxtoolsdev/threads/" href="http://social.msdn.microsoft.com/forums/en-US/netfxtoolsdev/threads/"&gt;http://social.msdn.microsoft.com/forums/en-US/netfxtoolsdev/threads/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;from: &lt;a href="http://blogs.msdn.com/b/davbr/archive/2011/02/01/clrprofiler-v4-released.aspx"&gt;http://blogs.msdn.com/b/davbr/archive/2011/02/01/clrprofiler-v4-released.aspx&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/hanxianlong/aggbug/2024917.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hanxianlong/archive/2011/04/22/2024917.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
