<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11485029</id><updated>2011-12-09T16:50:12.020+08:00</updated><category term='C#'/><category term='LINQ'/><category term='Twitter'/><category term='Website'/><category term='SQL'/><category term='Tweeter'/><category term='Agile'/><category term='namespace'/><category term='Javascript'/><category term='Office'/><category term='BizTalk'/><category term='SharePoint'/><category term='ASP'/><category term='XML'/><category term='Websphere MQ'/><category term='Maxis'/><category term='Project Server'/><category term='Oracle'/><category term='Training'/><category term='IIS'/><title type='text'>NG Yew Ban's Software Development Blog</title><subtitle type='html'>Software development tips, tricks and advice from NG Yew Ban, a professional Microsoft Certified Trainer and Microsoft Certified Solution Developer. 
 
BizTalk, ASP.NET, VB.NET, C#, Visual Basic, MS Access, MS SQL Server, Oracle, JavaScript, MS Office and more!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11485029.post-1511298646049875998</id><published>2011-12-09T16:48:00.001+08:00</published><updated>2011-12-09T16:50:12.025+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle PL/SQL Stored Procedure Looping Nested Exception Handling</title><content type='html'>Today we have a requirement that we want to have a stored procedure loop an Oracle records, inside the loop, we want to insert each record into few more tables via sub stored procedure, but we want to continue the loop if the insertion fail, and just only rollback the fail insert for the particular record, let's see an example:-&lt;br /&gt;&lt;br /&gt;We have Main table having Product ID 1 to 3, we will loop these records and insert each record into Table 1 and Table 2, i.e.&lt;br /&gt;Loop for Product ID 1 - Insert Product ID 1 to table 1 success, Insert Product ID 1 to table 2 success;&lt;br /&gt;Loop for Product ID 2 - Insert Product ID 2 to table 1 success, &lt;span style="color: red;"&gt;Insert Product ID 2 to table 2 fail&lt;/span&gt;;&lt;br /&gt;Loop for Product ID 3 - Insert Product ID 3 to table 1 success, Insert Product ID 3 to table 2 success;&lt;br /&gt;&lt;br /&gt;The tricky part is - we want to rollback the inserting Product ID 2 to table 1 and record the exception of inserting Product ID 2 to table 2 into Error Log and continue the next looping;&lt;br /&gt;&lt;br /&gt;How we design the Exception Handling to handle this requirement?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-HEmi850gZj4/TuHGqUsLvDI/AAAAAAAAAU4/CWdJIbEtjP8/s1600/OracleLoopExceptionHandling.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://1.bp.blogspot.com/-HEmi850gZj4/TuHGqUsLvDI/AAAAAAAAAU4/CWdJIbEtjP8/s320/OracleLoopExceptionHandling.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The solution is we need to handle the exception within looping, in main loop, we should commit the transaction for each record's sub-transactions success, and ignore/rollback when any record sub-transaction is failure, and the logging of the exception should do it in sub transaction.&lt;br /&gt;&lt;br /&gt;Here is the main stored procedure and sub stored procedures to simulate this scenario:-&lt;br /&gt;&lt;br /&gt;PACKAGE BODY "YB_TEST" IS&lt;br /&gt;&lt;div style="background-color: #dddddd;"&gt;PROCEDURE "PROC_MAIN" IS&lt;br /&gt;BEGIN -- executable part starts here&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE CURSOR P IS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT PRODUCT_ID, PRODUCT_NAME&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FROM TABLE_LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ORDER BY PRODUCT_ID;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FOR r IN p LOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PROC_SUB1(r.PRODUCT_ID, r.PRODUCT_ID, 'REMARK FOR ' || r.PRODUCT_ID);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PROC_SUB2(r.PRODUCT_ID, r.PRODUCT_ID, 'AUDIT FOR ' || r.PRODUCT_ID);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; COMMIT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EXCEPTION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; WHEN OTHERS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;NULL;&lt;br /&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ROLLBACK;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; END LOOP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;br /&gt;END "PROC_MAIN";&lt;/div&gt;&lt;br /&gt;&lt;div style="background-color: lightblue;"&gt;PROCEDURE "PROC_SUB1" (&lt;br /&gt;&amp;nbsp; P_ORDER_ID IN NUMBER, &lt;br /&gt;&amp;nbsp; P_PRODUCT_ID IN NUMBER, &lt;br /&gt;&amp;nbsp; P_REMARKS IN VARCHAR2) IS&lt;br /&gt;BEGIN -- executable part starts here&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO TABLE1 (ORDER_ID, PRODUCT_ID, REMARKS)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES (P_ORDER_ID, P_PRODUCT_ID, P_REMARKS);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCEPTION &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN OTHERS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ROLLBACK; -- Rollback the previous insert&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INSERT INTO TABLE_LOG (PRODUCT_ID, EXCEPTION_DESC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;VALUES(P_PRODUCT_ID, SUBSTR(DBMS_UTILITY.FORMAT_ERROR_STACK, 1, 100));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;COMMIT; -- Commit this exception logging &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RAISE; -- Re-throw Exception to caller, i.e. Main Loop&lt;br /&gt;&lt;br /&gt;END "PROC_SUB1";&lt;/div&gt;&lt;br /&gt;&lt;div style="background-color: lightyellow;"&gt;PROCEDURE "PROC_SUB2" (&lt;br /&gt;&amp;nbsp; P_AUDIT_ID IN NUMBER, &lt;br /&gt;&amp;nbsp; P_PRODUCT_ID IN NUMBER, &lt;br /&gt;&amp;nbsp; P_AUDIT_DESC IN VARCHAR2) IS&lt;br /&gt;BEGIN -- executable part starts here&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO TABLE2 (AUDIT_ID, PRODUCT_ID, AUDIT_DESC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES (P_AUDIT_ID, P_PRODUCT_ID, P_AUDIT_DESC);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCEPTION &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN OTHERS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ROLLBACK; -- Rollback the previous insert&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INSERT INTO TABLE_LOG (PRODUCT_ID, EXCEPTION_DESC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;VALUES(P_PRODUCT_ID, SUBSTR(DBMS_UTILITY.FORMAT_ERROR_STACK, 1, 100));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;COMMIT; -- Commit this exception logging &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;RAISE; -- Re-throw Exception to caller, i.e. Main Loop&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;END "PROC_SUB2";&lt;/div&gt;END "YB_TEST";&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-1511298646049875998?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/1511298646049875998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=1511298646049875998&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1511298646049875998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1511298646049875998'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/12/oracle-plsql-stored-procedure-looping.html' title='Oracle PL/SQL Stored Procedure Looping Nested Exception Handling'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-HEmi850gZj4/TuHGqUsLvDI/AAAAAAAAAU4/CWdJIbEtjP8/s72-c/OracleLoopExceptionHandling.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-5278073070340765662</id><published>2011-11-11T14:05:00.000+08:00</published><updated>2011-11-11T14:05:54.253+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint 2010 SharePoint Designer (50354B) Lab</title><content type='html'>To do the lab in SharePoint 2010 SharePoint Designer course 50354B, we can reuse other SharePoint courses Hyper-V image (e.g. SharePoint 2010 Application Development 10175) with the following configuration:-&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Enabled Desktop Experience in Windows 2008 R2 to enable MS Word documents save into SharePoint directly&lt;/li&gt;&lt;li&gt;All http://Servername:100 change to http://SharePoint&lt;/li&gt;&lt;li&gt;Setup http://SharePoint:112 for Publishing Portal&lt;/li&gt;&lt;li&gt;SQL Server 2008 R2 need to enable SQL Server Authentication&lt;/li&gt;&lt;li&gt;SQL Server sa user status should be enabled and configure password&lt;/li&gt;&lt;li&gt;Install &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23654" target="_blank"&gt;Northwind Database&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Module 4 Lab 1 Task 6 to join 2 data sources has bug in step 16 and require to fix the XSLT by following this &lt;a href="http://ybng.blogspot.com/2011/11/sharepoint-designer-2010-data-view-bug.html" target="_blank"&gt;article&lt;/a&gt;&lt;/li&gt;&lt;li&gt;No SMTP setup is required&lt;/li&gt;&lt;li&gt;Module 6 Lab 1 Step 17 (pg 20 of 27) should change "Send Email" to "Log to History"&lt;/li&gt;&lt;li&gt;Module 6 Lab 2 Task 7 Step 3 (pg 3 of 6) should change Lookup Manager to Set Variable "manager" to SHAREPOINT\Administrator&lt;/li&gt;&lt;li&gt;Module 6 Lab 2 Task 10 Step 8 (pg 5 of 6) Contose\sp_member change to Home Members&lt;/li&gt;&lt;li&gt;Module 6 Lab 3 (pg 3 of 3) last step, the recursive workflow will stop by creating another announcement items and the exception will be log into C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\14\Logs&lt;/li&gt;&lt;li&gt;Module 6 Lab 4 (pg 6 0f 7), before import, we need to delete the workflow Anywhere from Site Setting-&amp;gt;Site Admin-&amp;gt;Workflow Settings&lt;/li&gt;&lt;li&gt;Module 6 Lab 5 (pg 2 of 3) Step 14 is applied to Single Task not Overall Tasks&lt;/li&gt;&lt;/ol&gt;There is one mystery, the comment created from Workflow cannot be found from SharePoint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-5278073070340765662?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/5278073070340765662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=5278073070340765662&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/5278073070340765662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/5278073070340765662'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/11/sharepoint-2010-sharepoint-designer.html' title='SharePoint 2010 SharePoint Designer (50354B) Lab'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-1134843176137711589</id><published>2011-11-09T23:10:00.000+08:00</published><updated>2011-11-09T23:10:38.673+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Designer 2010 Data View bug in Join Linked Data Source!</title><content type='html'>I have 2 Data Sources - Category and Product, I created a Linked Data Source to join these 2 tables using their common key, and created a Data View to access this Linked Data Source, unfortunately the Data View display only the blank data view but with the number of records correct which I can see it from the paging info.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-VD451oDwZHQ/TrqVABdqX-I/AAAAAAAAAUQ/JaY71b3wbog/s1600/SharePoint+Designer+2010+Data+View+Bug+in+Join+Linked+Data+Source.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-VD451oDwZHQ/TrqVABdqX-I/AAAAAAAAAUQ/JaY71b3wbog/s1600/SharePoint+Designer+2010+Data+View+Bug+in+Join+Linked+Data+Source.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally I found out there is a XSLT bug in SharePoint Designer 2010 after spending sometime to troubleshoot this funny problem:-&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sOd11CWcIXk/TrqWCl8nKMI/AAAAAAAAAUY/0FvOSC8GdY0/s1600/SharePoint+Designer+2010+Data+View+XSLT+Bug+in+Join+Linked+Data+Source.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-sOd11CWcIXk/TrqWCl8nKMI/AAAAAAAAAUY/0FvOSC8GdY0/s1600/SharePoint+Designer+2010+Data+View+XSLT+Bug+in+Join+Linked+Data+Source.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The &lt;xsl:value-of select=""&gt; node is selecting the wrong data source value, we can erase the data source value inside this node and use XPath Expression Builder to find out the actual data source value.&lt;/xsl:value-of&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yAu-BYoEh8w/TrqW3sDm-xI/AAAAAAAAAUg/Je0perx5KsI/s1600/SharePoint+Designer+2010+Data+View+XSLT+Expression+Builder.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="496" src="http://4.bp.blogspot.com/-yAu-BYoEh8w/TrqW3sDm-xI/AAAAAAAAAUg/Je0perx5KsI/s640/SharePoint+Designer+2010+Data+View+XSLT+Expression+Builder.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;After correcting the data source value by using XSLT Expression Builder, my data view work like charm!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-f-YU8GH_x3g/TrqX4tNyEBI/AAAAAAAAAUo/XstZDAfAldc/s1600/SharePoint+Designer+2010+Data+View+working+with+Join+Linked+Data+Source+successfully.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-f-YU8GH_x3g/TrqX4tNyEBI/AAAAAAAAAUo/XstZDAfAldc/s1600/SharePoint+Designer+2010+Data+View+working+with+Join+Linked+Data+Source+successfully.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-1134843176137711589?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/1134843176137711589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=1134843176137711589&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1134843176137711589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1134843176137711589'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/11/sharepoint-designer-2010-data-view-bug.html' title='SharePoint Designer 2010 Data View bug in Join Linked Data Source!'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-VD451oDwZHQ/TrqVABdqX-I/AAAAAAAAAUQ/JaY71b3wbog/s72-c/SharePoint+Designer+2010+Data+View+Bug+in+Join+Linked+Data+Source.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-429128177158811406</id><published>2011-10-29T12:50:00.000+08:00</published><updated>2011-10-29T12:50:07.971+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint Wiki Link</title><content type='html'>SharePoint 2010 Wiki Link is powerful! We can create SharePoint Wiki Link by using [[Square Brackets]]&lt;br /&gt;&lt;br /&gt;To link to your Wiki Page, type [[Wiki Page Name]], e.g. [[SharePoint]], it will be linked if the Wiki Page is exists else the Wiki Page will be created.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-gd7IUPgEinc/TquCDihcrLI/AAAAAAAAAT0/BeUAdj3Dfcs/s1600/New+Wiki+Page.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" src="http://4.bp.blogspot.com/-gd7IUPgEinc/TquCDihcrLI/AAAAAAAAAT0/BeUAdj3Dfcs/s400/New+Wiki+Page.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We also can link to any documents or lists using [[List:Path to the list item]], e.g. We have a video clip abc.wmv in Shared Documents, we can link it using [[List:Shared Documents/abc.wmv]]&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4mHdQ277dz8/TquE88onaoI/AAAAAAAAAT8/qK2yZU2FjiE/s1600/WikiLinkToList.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-4mHdQ277dz8/TquE88onaoI/AAAAAAAAAT8/qK2yZU2FjiE/s1600/WikiLinkToList.png" /&gt;&lt;/a&gt;&lt;/div&gt;You also can link to View using [[View:View Path]]&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Rshmoac_dCk/TquF1jThUDI/AAAAAAAAAUE/W4_KSY-bANo/s1600/WikiLinkToView.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-Rshmoac_dCk/TquF1jThUDI/AAAAAAAAAUE/W4_KSY-bANo/s1600/WikiLinkToView.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This feature is enabled in Site Settings/Features/Wiki Page Home Page.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-xD-lyvpM-nI/TquAvw6BYdI/AAAAAAAAATs/v07vLXgVwwI/s1600/SiteFeatures.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://4.bp.blogspot.com/-xD-lyvpM-nI/TquAvw6BYdI/AAAAAAAAATs/v07vLXgVwwI/s640/SiteFeatures.png" width="640" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-429128177158811406?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/429128177158811406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=429128177158811406&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/429128177158811406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/429128177158811406'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/10/sharepoint-wiki-link.html' title='SharePoint Wiki Link'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-gd7IUPgEinc/TquCDihcrLI/AAAAAAAAAT0/BeUAdj3Dfcs/s72-c/New+Wiki+Page.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-1958651935532845273</id><published>2011-10-04T16:17:00.001+08:00</published><updated>2011-10-04T16:19:12.768+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk 2010 Redistributable CAB Files</title><content type='html'>Windows Server 2008 32-bit Edition &lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif"; mso-fareast-language:EN-US;}&lt;/style&gt; &lt;![endif]--&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-fareast-font-family: SimSun; mso-fareast-language: EN-US; mso-font-kerning: 12.0pt;"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=189407&amp;amp;clcid=0x409"&gt;http://go.microsoft.com/fwlink/?LinkID=189407&amp;amp;clcid=0x409&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windows Server 2008 64-bit Edition &lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif"; mso-fareast-language:EN-US;}&lt;/style&gt; &lt;![endif]--&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-fareast-font-family: SimSun; mso-fareast-language: EN-US; mso-font-kerning: 12.0pt;"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=189408&amp;amp;clcid=0x409"&gt;http://go.microsoft.com/fwlink/?LinkID=189408&amp;amp;clcid=0x409&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Windows Server 2008 R2&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:EnableOpenTypeKerning/&gt;    &lt;w:DontFlipMirrorIndents/&gt;    &lt;w:OverrideTableStyleHps/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif"; mso-fareast-language:EN-US;}&lt;/style&gt; &lt;![endif]--&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-fareast-font-family: SimSun; mso-fareast-language: EN-US; mso-font-kerning: 12.0pt;"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=189409&amp;amp;clcid=0x409"&gt;http://go.microsoft.com/fwlink/?LinkID=189409&amp;amp;clcid=0x409&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-1958651935532845273?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/1958651935532845273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=1958651935532845273&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1958651935532845273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1958651935532845273'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/10/biztalk-2010-redistributable-cab-files.html' title='BizTalk 2010 Redistributable CAB Files'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-4995145798136546888</id><published>2011-09-06T10:59:00.000+08:00</published><updated>2011-09-06T10:59:48.481+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Upgrade from BizTalk 2006 to 2010</title><content type='html'>Few useful articles for Upgrade from BizTalk 2006 to 2010:-&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/ff11be4c-0556-477e-87e3-437dbd122451" target="_blank"&gt;Upgrade from BizTalk 2006 to 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/nitinme/archive/2010/11/15/upgrading-to-biztalk-server-2010-what-happens-with-biztalk-adapter-pack.aspx" target="_blank"&gt;Upgrading to BizTalk Server 2010: What happens with BizTalk Adapter Pack?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en/biztalkgeneral/thread/085276f6-a890-45df-8418-1e96193e53c9" target="_blank"&gt;Biztalk 2010 - upgrading existing Biztalk 2006R2 Project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/info.aspx?na=41&amp;amp;srcfamilyid=b77d6a4f-8b41-470e-a58c-730dc5859b38&amp;amp;srcdisplaylang=en&amp;amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f0%2fF%2fF%2f0FFEF5D0-BE04-4D03-9125-75B8AD243E57%2fUpgrading%20to%20BizTalk%20Server%202010%20from%20BizTalk%20Server%202009%20or%202006%20R2.docx" target="_blank"&gt;Upgrading to BizTalk Server 2010 from BizTalk Server 2009 or 2006 R2.docx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-4995145798136546888?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/4995145798136546888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=4995145798136546888&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/4995145798136546888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/4995145798136546888'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/09/upgrade-from-biztalk-2006-to-2010.html' title='Upgrade from BizTalk 2006 to 2010'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-3086177264797730905</id><published>2011-07-09T23:16:00.000+08:00</published><updated>2011-07-09T23:16:56.753+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# Batch Replace with encoding</title><content type='html'>Here is the code I wrote for batch replace with GB2312 encoding:-&lt;br /&gt;&lt;br /&gt;var dir = new DirectoryInfo(@"D:\hgb");&lt;br /&gt;string strFileName;&lt;br /&gt;string content;&lt;br /&gt;var encoding = Encoding.GetEncoding(936);&lt;br /&gt;&lt;br /&gt;foreach (var f in dir.GetFiles("*.htm", SearchOption.AllDirectories))&lt;br /&gt;{&lt;br /&gt;strFileName = f.DirectoryName + @"\" + f.Name;&lt;br /&gt;using (StreamReader reader = new StreamReader(strFileName, encoding))&lt;br /&gt;{&lt;br /&gt;content = reader.ReadToEnd();&lt;br /&gt;content = Regex.Replace(content, "font size=-1", "font size=48");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;StreamWriter writer = new StreamWriter(strFileName, false, encoding);&lt;br /&gt;writer.Write(content);&lt;br /&gt;writer.Close();&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-3086177264797730905?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/3086177264797730905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=3086177264797730905&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/3086177264797730905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/3086177264797730905'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/07/c-batch-replace-with-encoding.html' title='C# Batch Replace with encoding'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-1431803204974365852</id><published>2011-07-07T14:23:00.015+08:00</published><updated>2011-07-08T11:32:43.217+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Training'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>10175 Lab Correction (SharePoint 2010 Application Development)</title><content type='html'>General&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Trainer MOC page number may different with student page number.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Lab 2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;There&amp;nbsp;are spacing issues in Exercise 3 Task 4 PowerShell Commands, All *SP Solution commands should be corrected as *SPSolution, e.g. Add-SP Solution should be corrected as Add-SPSolution.&lt;/li&gt;&lt;li&gt;The -GAC Deployment should be corrected as -GACDeployment&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Lab 4&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;We should remove the where clause in unfilteredJobs LINQ query from Exercise 3 Task 5 Step 12 then only step 21 All Jobs will be displayed correctly.&lt;/li&gt;&lt;/ol&gt;Lab 5 &lt;br /&gt;&lt;ol&gt;&lt;li&gt;The web.config never changed although the lab works as expected, this issue is caused by access denied, we have to fix it in Powershell:&lt;br /&gt;&lt;table bgcolor="silver"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="word-break: break-all;"&gt;$svc = [Microsoft.SharePoint.Administration.SPWebService]::ContentService&lt;br /&gt;$svc.RemoteAdministratorAccessDenied = $False&lt;br /&gt;$svc.Update()&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/li&gt;&lt;li&gt;We should reference to System.Configuration to use the ConfigurationManager in Exercise 3 Task 2 Step 2.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;Lab 6 &lt;br /&gt;&lt;ol&gt;&lt;li&gt;When you are instructed to input any object or variable name with spacing, please remove the space, example:- HR Training Management has to be input as HRTrainingManagement.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Lab 8&lt;br /&gt;&lt;ol&gt;&lt;li&gt;There is a list "Mashup" is hidden, we can display it from SharePoint Designer All Files section.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Lab 10&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Please create a site page named Training for Exercise 2 Task 9 Step 3&lt;/li&gt;&lt;li&gt;You may need to click the Share Documents few times to let the video thumbnails to display accordingly.&lt;/li&gt;&lt;/ol&gt;Lab 13&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Microsoft Office is not activated in Hyper-V image and not able to perform Exercise 2 Task 1, workaround is to copy the Metro theme from C:\Program Files (x86)\Microsoft Office\Document Themes 14\Metro.thmx to Desktop&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-1431803204974365852?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/1431803204974365852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=1431803204974365852&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1431803204974365852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1431803204974365852'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/07/10175-sharepoint-2010-application.html' title='10175 Lab Correction (SharePoint 2010 Application Development)'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-7132541155110194760</id><published>2011-02-28T09:52:00.001+08:00</published><updated>2011-07-08T11:29:50.251+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tweeter'/><category scheme='http://www.blogger.com/atom/ns#' term='Maxis'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><title type='text'>Unsubscribe Tweeter from Maxis</title><content type='html'>Recently test with Tweeter to try out Mobile notification, after testing try to unsubscribe but failed few times by sms STOP to 28933 Maxis Tweet2Me service.&lt;br /&gt;&lt;br /&gt;Finally I can unsubscribed successfully by using this command:-&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STOP &lt;space&gt;TWEET2ME to 28933. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Receive the response from Maxis:-&lt;br /&gt;RM0. Your Twitter SMS subscription has been terminated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-7132541155110194760?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/7132541155110194760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=7132541155110194760&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/7132541155110194760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/7132541155110194760'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/02/unsubscribe-tweeter-from-maxis.html' title='Unsubscribe Tweeter from Maxis'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-742194735378610924</id><published>2011-01-12T16:43:00.003+08:00</published><updated>2011-07-08T11:40:21.512+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='namespace'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Javascript getElementByTagName XML with namespace prefix</title><content type='html'>How to use Javascript to retrieve XML data with namespace prefix? &lt;br /&gt;&lt;br /&gt;Example:-&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;We can use getElementByTagName together with namespace prefix to access the element value:-&lt;br /&gt;xmlDoc.getElementsByTagName("ns0:POID")[0].firstChild.nodeValue ;&lt;br /&gt;&lt;br /&gt;Whole code to access the XML data with namespace prefix via getElementsByTagName:-&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;function getXML()&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;var xmlstring = "&amp;lt;?xml version='1.0' ?&amp;gt;&amp;lt;ns0:PO xmlns:ns0='http://www.abc.com/PO'&amp;gt;&amp;lt;ns0:POID&amp;gt;PO123&amp;lt;/ns0:POID&amp;gt;&amp;lt;ns0:CustomerID&amp;gt;ABC007&amp;lt;/ns0:CustomerID&amp;gt;&amp;lt;/ns0:PO&amp;gt;";&lt;br /&gt;&lt;br /&gt;if (window.DOMParser)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;parser=new DOMParser();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlDoc=parser.parseFromString(xmlstring,"text/xml");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;else // Internet Explorer&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlDoc=new ActiveXObject("Microsoft.XMLDOM");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlDoc.async="false";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlDoc.loadXML(xmlstring); &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;var x = xmlDoc.getElementsByTagName("ns0:POID")[0].firstChild.nodeValue ;&lt;br /&gt;&lt;br /&gt;alert(x);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&amp;lt;body onload="javascript:getXML()"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;br /&gt;&amp;lt;?xml version='1.0' ?&amp;gt;&lt;br /&gt;&amp;lt;ns0:PO xmlns:ns0='http://www.abc.com/PO'&amp;gt;&lt;br /&gt;&amp;lt;ns0:POID&amp;gt;PO123&amp;lt;/ns0:POID&amp;gt;&lt;br /&gt;&amp;lt;ns0:CustomerID&amp;gt;ABC007&amp;lt;/ns0:CustomerID&amp;gt;&lt;br /&gt;&amp;lt;/ns0:PO&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-742194735378610924?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/742194735378610924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=742194735378610924&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/742194735378610924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/742194735378610924'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2011/01/javascript-getelementbytagname-xml-with.html' title='Javascript getElementByTagName XML with namespace prefix'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-1654649065484851632</id><published>2010-08-13T10:46:00.004+08:00</published><updated>2011-07-08T11:32:28.262+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Training'/><title type='text'>BizTalk 2009 Redistributable CAB files</title><content type='html'>BizTalk 2009&lt;br /&gt;What's new webcast - &lt;a href="https://www106.livemeeting.com/cc/microsoftevents/view?id=BTS18AL&amp;amp;role=attend&amp;amp;pw=FGE399"&gt;https://www106.livemeeting.com/cc/microsoftevents/view?id=BTS18AL&amp;amp;role=attend&amp;amp;pw=FGE399&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.google.com/leaf?id=0By910BPLu7nTYzFlMTMyM2MtY2JiNi00MjRjLWFiZmQtNjVjMWEwZDM4N2Y1&amp;amp;hl=en"&gt;Q&amp;amp;A&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Windows XP&lt;br /&gt;&lt;ul&gt;&lt;li&gt;32-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=137256"&gt;http://go.microsoft.com/fwlink/?LinkId=137256&lt;/a&gt;&lt;/li&gt;&lt;li&gt;64-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=137262"&gt;http://go.microsoft.com/fwlink/?LinkId=137262&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Windows Server 2003&lt;br /&gt;&lt;ul&gt;&lt;li&gt;32-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=137166"&gt;http://go.microsoft.com/fwlink/?LinkID=137166&lt;/a&gt;&lt;/li&gt;&lt;li&gt;64-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=137260"&gt;http://go.microsoft.com/fwlink/?LinkId=137260&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Windows Vista&lt;br /&gt;&lt;ul&gt;&lt;li&gt;32-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=137259"&gt;http://go.microsoft.com/fwlink/?LinkId=137259&lt;/a&gt;&lt;/li&gt;&lt;li&gt;64-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=137263"&gt;http://go.microsoft.com/fwlink/?LinkId=137263&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Windows Server 2008&lt;br /&gt;&lt;ul&gt;&lt;li&gt;32-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=137254"&gt;http://go.microsoft.com/fwlink/?LinkID=137254&lt;/a&gt;&lt;/li&gt;&lt;li&gt;64-bit: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=137261"&gt;http://go.microsoft.com/fwlink/?LinkId=137261&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-1654649065484851632?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/1654649065484851632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=1654649065484851632&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1654649065484851632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1654649065484851632'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2010/08/biztalk-2009-redistributable-cab-files.html' title='BizTalk 2009 Redistributable CAB files'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-2317766522251974026</id><published>2009-11-18T13:04:00.003+08:00</published><updated>2011-07-08T11:31:29.579+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>T-SQL Split</title><content type='html'>I still have seen developer asking me how to Split in SQL Server, although we can enable CLR Integration in SQL Server, here is the classic one from SQL Server Magazine that I have used since SQL Server 2000 and it is very powerful, &lt;a href="http://www.sqlmag.com/Article/ArticleID/21071/sql_server_21071.html"&gt;Treat Yourself to Fn_Split() - This UDF lets you emulate VB's Split() function and parameter arrays &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;CREATE FUNCTION fn_Split(@sText varchar(8000), @sDelim varchar(20) = ' ')&lt;br /&gt;RETURNS @retArray TABLE (idx smallint Primary Key, value varchar(8000))&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;DECLARE @idx smallint,&lt;br /&gt;@value varchar(8000),&lt;br /&gt;@bcontinue bit,&lt;br /&gt;@iStrike smallint,&lt;br /&gt;@iDelimlength tinyint&lt;br /&gt;&lt;br /&gt;IF @sDelim = 'Space'&lt;br /&gt;BEGIN&lt;br /&gt;SET @sDelim = ' '&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;SET @idx = 0&lt;br /&gt;SET @sText = LTrim(RTrim(@sText))&lt;br /&gt;SET @iDelimlength = DATALENGTH(@sDelim)&lt;br /&gt;SET @bcontinue = 1&lt;br /&gt;&lt;br /&gt;IF NOT ((@iDelimlength = 0) or (@sDelim = 'Empty'))&lt;br /&gt;BEGIN&lt;br /&gt;WHILE @bcontinue = 1&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;--If you can find the delimiter in the text, retrieve the first element and&lt;br /&gt;--insert it with its index into the return table.&lt;br /&gt;&lt;br /&gt;IF CHARINDEX(@sDelim, @sText)&amp;gt;0&lt;br /&gt;BEGIN&lt;br /&gt;SET @value = SUBSTRING(@sText,1, CHARINDEX(@sDelim,@sText)-1)&lt;br /&gt;BEGIN&lt;br /&gt;INSERT @retArray (idx, value)&lt;br /&gt;VALUES (@idx, @value)&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;--Trim the element and its delimiter from the front of the string.&lt;br /&gt;--Increment the index and loop.&lt;br /&gt;SET @iStrike = DATALENGTH(@value) + @iDelimlength&lt;br /&gt;SET @idx = @idx + 1&lt;br /&gt;SET @sText = LTrim(Right(@sText,DATALENGTH(@sText) - @iStrike))&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;ELSE&lt;br /&gt;BEGIN&lt;br /&gt;--If you can抰 find the delimiter in the text, @sText is the last value in&lt;br /&gt;--@retArray.&lt;br /&gt;SET @value = @sText&lt;br /&gt;BEGIN&lt;br /&gt;INSERT @retArray (idx, value)&lt;br /&gt;VALUES (@idx, @value)&lt;br /&gt;END&lt;br /&gt;--Exit the WHILE loop.&lt;br /&gt;SET @bcontinue = 0&lt;br /&gt;END&lt;br /&gt;END&lt;br /&gt;END&lt;br /&gt;ELSE&lt;br /&gt;BEGIN&lt;br /&gt;WHILE @bcontinue=1&lt;br /&gt;BEGIN&lt;br /&gt;--If the delimiter is an empty string, check for remaining text&lt;br /&gt;--instead of a delimiter. Insert the first character into the&lt;br /&gt;--retArray table. Trim the character from the front of the string.&lt;br /&gt;--Increment the index and loop.&lt;br /&gt;IF DATALENGTH(@sText)&amp;gt;1&lt;br /&gt;BEGIN&lt;br /&gt;SET @value = SUBSTRING(@sText,1,1)&lt;br /&gt;BEGIN&lt;br /&gt;INSERT @retArray (idx, value)&lt;br /&gt;VALUES (@idx, @value)&lt;br /&gt;END&lt;br /&gt;SET @idx = @idx+1&lt;br /&gt;SET @sText = SUBSTRING(@sText,2,DATALENGTH(@sText)-1)&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;ELSE&lt;br /&gt;BEGIN&lt;br /&gt;--One character remains.&lt;br /&gt;--Insert the character, and exit the WHILE loop.&lt;br /&gt;INSERT @retArray (idx, value)&lt;br /&gt;VALUES (@idx, @sText)&lt;br /&gt;SET @bcontinue = 0 &lt;br /&gt;END&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;RETURN&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;-- Sample Code for Using Fn_Split() in Pubs to Emulate a Parameter Array&lt;br /&gt;&lt;br /&gt;Use Pubs&lt;br /&gt;&lt;br /&gt;CREATE  PROCEDURE procPubsTitleView&lt;br /&gt;&lt;br /&gt;@sAuthors varchar(8000)&lt;br /&gt;AS&lt;br /&gt;SELECT title, au_lname, price FROM Pubs.dbo.titleview&lt;br /&gt;JOIN dbo.fn_Split(@sAuthors, ',') &lt;br /&gt;ON au_lname = value&lt;br /&gt;RETURN&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-2317766522251974026?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/2317766522251974026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=2317766522251974026&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/2317766522251974026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/2317766522251974026'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2009/11/t-sql-split.html' title='T-SQL Split'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-1903481631055920215</id><published>2009-10-31T14:15:00.004+08:00</published><updated>2011-07-08T11:31:53.016+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Is BizTalk dead?</title><content type='html'>One of the frequently asked question - Is BizTalk Dead?&lt;br /&gt;&lt;br /&gt;The question arises with the announcement of Dublin able to makes long running workflow implemented in Windows Workflow Foundation (WF) persisted in SQL Store, sounds like Biztalk.&lt;br /&gt;&lt;br /&gt;More details at A First Look at WF 4.0, “Dublin”, and “Oslo” &lt;a href="http://msdn.microsoft.com/en-us/library/dd200919.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/dd200919.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have implemented BizTalk projects in multinational organizations with industry standard like SWIFT, my personal opinion is, no doubt WF, Dublin and Oslo are evolving technologies in application development, but BizTalk still playing as a strong leader in Integration technologies for EAI and B2B, reason being are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;B2B industry standard like EDI, SWIFT, RosettaNet contains hundred to thousand schemas and only available in BizTalk as Accelerators. I do not think developers can create all these schema parser easily within short time frame&lt;/li&gt;&lt;li&gt;BizTalk has many built in Network, Data and Application Adapters like MQ, MSMQ, SAP, Oracle, FTP, and etc and all these can be easily tested by BizTalk engineer, without BizTalk, this will need to develop by developers, I believe this is not a difficult task but also not a straight forward task for developer, and how to unit test all these protocol adpaters required sophisticated knowledge, is our developer have all these knowledge to work with different kind of network, data and application protocols?&lt;/li&gt;&lt;li&gt;BizTalk Business Activity Monitoring (BAM) is a good integration analytical tool can be easily implemented by Business Analysts, Administrators and Developers, without BizTalk, can developers built this tool?&lt;/li&gt;&lt;li&gt;Last but not least, from the business point of view, BizTalk has been sold to many multinational organizations and implemented successfully, will Microsoft stone themselves by killing BizTalk?&lt;/li&gt;&lt;/ul&gt;I foresee BizTalk will continue evolve by combining WF, Dublin and Oslo instead of deprecated, and this is clear in BizTalk roadmap:-&lt;br /&gt;&lt;a href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx" target="_blank"&gt;BizTalk Server and "Oslo" and .NET &lt;/a&gt;&lt;br /&gt;"Oslo" is the codename for Microsoft’s forthcoming modeling platform. Modeling is used across a wide range of domains and allows more people to participate in application design and allows developers to write applications at a much higher level of abstraction. "Oslo" delivers a new integrated platform for connecting across modeling domains, including a new "Oslo" modeling tool, an "Oslo" modeling language, and an "Oslo" repository. As we gathered feedback from BizTalk customers, they indicated they would prefer to take a disciplined, evolutionary path to adopting some of these newer platform technologies. We have thousands of customers that have deployed mission-critical applications on top of our BizTalk Server architecture; they want to decide for themselves when to move to newer versions of the platform. &lt;br /&gt;Therefore, it’s an important guiding principle to our planning efforts that we preserve our customers existing investments in their BizTalk Server infrastructure. In fact, you won’t need to upgrade BizTalk Server to take advantage of "Oslo" – current BizTalk Server 2006 R2 or BizTalk Server 2009 customers can benefit from "Oslo" by being able to leverage and compose existing services into new composite applications. BizTalk Server today provides the ability to service enable LOB systems or trading partners as web services (using WCF supported protocols), which can be composed with the "Oslo" modeling technologies.&lt;br /&gt;This principle applies to advances in the .NET Framework as well, such as Windows Workflow Foundation (WF). In response to customer feedback, we are committed to continued support for BizTalk Server’s XLANG orchestration technology - the existing BizTalk orchestration engine. Additional support for WF will be prioritized for the coming releases based upon customer demand and scenarios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-1903481631055920215?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/1903481631055920215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=1903481631055920215&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1903481631055920215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1903481631055920215'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2009/10/is-biztalk-dead.html' title='Is BizTalk dead?'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-1555848695023667081</id><published>2009-10-29T22:00:00.005+08:00</published><updated>2011-07-08T11:32:12.680+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Training'/><title type='text'>Developing Business Process and Integration Solutions Using Microsoft BizTalk Server</title><content type='html'>BizTalk Server (BTS) is a great product from Microsoft and it solves a lot of integration challenges, I have shared this technology with patterns and best practices to many experience BizTalk engineers and developers at Kuala Lumpur. &lt;br /&gt;Course 2933A:&lt;br /&gt;&lt;a href="http://www.microsoft.com/learning/en/us/course.aspx?ID=2933A&amp;amp;Locale=en-us"&gt;Developing Business Process and Integration Solutions Using Microsoft BizTalk Server 2006&lt;/a&gt;&lt;br /&gt;Module 1: Introduction to BizTalk Server 2006&lt;br /&gt;Module 2: Creating Schemas&lt;br /&gt;Module 3: Creating Maps&lt;br /&gt;Module 4: Deploying a BizTalk Project&lt;br /&gt;Module 5: Routing BizTalk Messages&lt;br /&gt;Module 6: Creating Pipelines&lt;br /&gt;Module 7: Integrating with Adapters&lt;br /&gt;Module 8: Creating a BizTalk Orchestration&lt;br /&gt;Module 9: Automating Business Processes&lt;br /&gt;Module 10: Creating Transactional Business Processes&lt;br /&gt;Module 11: Deploying and Managing BizTalk Applications&lt;br /&gt;Module 12:Integrating with Web Services&lt;br /&gt;Module 13: Integrating Business Rules&lt;br /&gt;Module 14: Enabling Business Activity Monitoring&lt;br /&gt;Module 15: Integrating Trading Partners &lt;br /&gt;&lt;a href="http://www.metricsthatmatter.com/iversona54"&gt;http://www.metricsthatmatter.com/iversona54&lt;/a&gt;&lt;br /&gt;&lt;a href="https://www.metricsthatmatter.com/infotrek12"&gt;https://www.metricsthatmatter.com/infotrek12&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-1555848695023667081?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/1555848695023667081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=1555848695023667081&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1555848695023667081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/1555848695023667081'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2009/10/developing-business-process-and.html' title='Developing Business Process and Integration Solutions Using Microsoft BizTalk Server'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-5156834873567773481</id><published>2009-08-25T12:44:00.005+08:00</published><updated>2011-07-08T11:33:24.633+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Connect WSS internal database Microsoft##SSEE using SSMS</title><content type='html'>Default Windows SharePoint Services internal database can be connected successfully using this connection from SQL Server Management Studio (SSMS):-&lt;br /&gt;&lt;br /&gt;\\.\pipe\mssql$microsoft##ssee\sql\query&lt;br /&gt;&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;1) Start SSMS and key in the connection&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5373758657248635042" src="http://1.bp.blogspot.com/_q6neV_eBCeI/SpNtBwH8KKI/AAAAAAAAAFc/rlmNuRp2O18/s320/Connect+Microsoft%23%23SSEE.JPG" style="cursor: hand;" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;2) We can access the Microsoft##SSEE now!&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5373758953446983554" src="http://1.bp.blogspot.com/_q6neV_eBCeI/SpNtS_jIR4I/AAAAAAAAAFk/Bf88oBUkWCQ/s320/Microsoft%23%23SSEE.JPG" style="cursor: hand;" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-5156834873567773481?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/5156834873567773481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=5156834873567773481&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/5156834873567773481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/5156834873567773481'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2009/08/connect-wss-internal-database.html' title='Connect WSS internal database Microsoft##SSEE using SSMS'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q6neV_eBCeI/SpNtBwH8KKI/AAAAAAAAAFc/rlmNuRp2O18/s72-c/Connect+Microsoft%23%23SSEE.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-6103232904763020913</id><published>2009-07-25T16:05:00.004+08:00</published><updated>2011-07-08T11:33:49.827+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office'/><title type='text'>ASP.NET populates Excel data without Office installed - DSOFile</title><content type='html'>Do you have any requirements to generate online Excel form from server without Office installed?&lt;br /&gt;&lt;br /&gt;Why not download DSOFile from Microsoft website?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/224351" target="_blank"&gt;The Dsofile.dll files lets you edit Office document properties when you do not have Office installed&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sample Code in C#:-&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;DSOFile.OleDocumentPropertiesClass d = new DSOFile.OleDocumentPropertiesClass();&lt;br /&gt;string file = Server.MapPath(@"Files\I9.xls");&lt;br /&gt;d.Open(file, false, DSOFile.dsoFileOpenOptions.dsoOptionOpenReadOnlyIfNoWriteAccess);&lt;br /&gt;&lt;br /&gt;foreach (DSOFile.CustomProperty cp in d.CustomProperties)&lt;br /&gt;{&lt;br /&gt;if (cp.Name == "Name")&lt;br /&gt;{&lt;br /&gt;object objValue = "YB test on " + DateTime.Now;&lt;br /&gt;cp.set_Value(ref objValue);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;d.Save();&lt;br /&gt;d.Close(true);&lt;br /&gt;&lt;br /&gt;System.Runtime.InteropServices.Marshal.ReleaseComObject(d);&lt;br /&gt;&lt;br /&gt;Response.Write(file + " [Name] field has been updated successfully"); &lt;/span&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-6103232904763020913?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/6103232904763020913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=6103232904763020913&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/6103232904763020913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/6103232904763020913'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2009/07/aspnet-populates-excel-data-without.html' title='ASP.NET populates Excel data without Office installed - DSOFile'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-8741396509111398464</id><published>2009-07-25T15:54:00.003+08:00</published><updated>2011-07-08T11:34:07.792+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><title type='text'>Offshore Development with Agile Software Process</title><content type='html'>No requirements can get 100% in software development, the better Software Development Process is Agile compared to Waterfall, especially in Offshore Development Business.&lt;br /&gt;&lt;br /&gt;This article from Martin Fowler is a good one:-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://martinfowler.com/articles/agileOffshore.html" target="_blank"&gt;Using an Agile Software Process with Offshore Development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Documentation in Agile is much lesser compared to Waterfall, but the most important in Agile is user participation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-8741396509111398464?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/8741396509111398464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=8741396509111398464&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/8741396509111398464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/8741396509111398464'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2009/07/offshore-development-with-agile.html' title='Offshore Development with Agile Software Process'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-2067255775878487736</id><published>2008-07-15T13:18:00.003+08:00</published><updated>2011-07-08T11:34:30.935+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Community Launch for Heroes</title><content type='html'>I have presented LINQ to SQL Introduction on 28 June 2008 (Saturday) at Microsoft Auditorium, details at &lt;a href="http://www.microsoft.com/malaysia/events/communityheroes/"&gt;http://www.microsoft.com/malaysia/events/communityheroes/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-2067255775878487736?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/2067255775878487736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=2067255775878487736&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/2067255775878487736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/2067255775878487736'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2008/07/community-launch-for-heroes.html' title='Community Launch for Heroes'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-7846224516509329031</id><published>2008-07-11T13:46:00.005+08:00</published><updated>2011-07-08T11:34:48.126+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>BizTalk WCF Oracle Dynamic Send Port</title><content type='html'>How to implement WCF Oracle Dynamic Send Port? There is an example in Microsoft BizTalk Adapter 3.0 for Oracle Database Documentation:-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Request2(BTS.OutboundTransportType)="WCF-Custom";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Request2(WCF.Action)="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY/Select";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Request2(WCF.BindingType) = "oracleDBBinding";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Request2(WCF.UserName)="SCOTT";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Request2(WCF.Password)="TIGER";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;SendPort(Microsoft.XLANGs.BaseTypes.Address)="oracledb://adapdoc/";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you deployed the code may hit the error:-&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Event Type: Error&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Event Source: BizTalk Server 2006&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Event Category: BizTalk Server 2006 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Event ID: 5754&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Date: 7/3/2008&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Time: 11:21:31 AM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;User: N/A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Computer: AMSDC1-S-7538&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;Description:A message sent to adapter "Oracle" on send port "OracleDynamicSendPort_1.0.0.0_OracleDynamicSendPort.OracleSend_Port_DynamicOracle_beec5c3523602cdb" with URI "oracledb://TNSNAME&lt;tnsname&gt;/?PollingId=1" is suspended. Error details: Value cannot be null.Parameter name: s MessageId: {A7F0A852-C315-4521-9B63-E0BFE221F4AE} InstanceID: {FF53A23E-3F21-4098-A02B-8381E6C3D851}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The solution is to add additional line in the code above:-&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;SendPort(Microsoft.XLANGs.BaseTypes.TransportType) = "WCF-Custom";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then this exception will be resolved.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;to use the WCF Oracle Dynamic Send Port, the Adapter's default send handler, i.e. the BizTalk hosts must be running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-7846224516509329031?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/7846224516509329031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=7846224516509329031&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/7846224516509329031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/7846224516509329031'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2008/07/biztalk-wcf-oracle-dynamic-send-port.html' title='BizTalk WCF Oracle Dynamic Send Port'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-114428757889218804</id><published>2006-04-06T09:37:00.001+08:00</published><updated>2011-07-08T11:35:00.955+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Website'/><title type='text'>New Web Site created</title><content type='html'>Just created a new website &lt;a href="http://www.kuala-lumpur-guide.com/"&gt;http://www.kuala-lumpur-guide.com/&lt;/a&gt; to share what is Kuala Lumpur included dark side information&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-114428757889218804?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.kuala-lumpur-guide.com' title='New Web Site created'/><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/114428757889218804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=114428757889218804&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/114428757889218804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/114428757889218804'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2006/04/new-web-site-created.html' title='New Web Site created'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-114043241059088604</id><published>2006-02-20T18:45:00.001+08:00</published><updated>2011-07-08T11:35:26.025+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Websphere MQ'/><title type='text'>WebSphere MQ Samples</title><content type='html'>Sample code for accessing Webphere MQ in Microsoft C#, VB6 and VB.NET&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.capitalware.biz/mq_code_csharp.html"&gt;http://www.capitalware.biz/mq_code_csharp.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-114043241059088604?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/114043241059088604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=114043241059088604&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/114043241059088604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/114043241059088604'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2006/02/websphere-mq-samples.html' title='WebSphere MQ Samples'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-113991782122903732</id><published>2006-02-14T19:44:00.002+08:00</published><updated>2011-07-08T11:36:17.767+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Project Server</title><content type='html'>I implemented a windows sharepoint services + SQL Server 2000 Reporting Services project in Australia last year, I used Smart Part &lt;a href="http://www.microsoft.com/belux/nl/msdn/community/columns/u2u/smartpart.mspx"&gt;http://www.microsoft.com/belux/nl/msdn/community/columns/u2u/smartpart.mspx&lt;/a&gt; developed for Sharepoint Web Parts, the result is good, when combining with SQL Reporting Services can become a impressive BI portal.&lt;br /&gt;&lt;br /&gt;Anyway the new SQL Server 2005 has been released last year after end of my Project, everybody have to pick up the new skill asap to keep the competency :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-113991782122903732?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/113991782122903732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=113991782122903732&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/113991782122903732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/113991782122903732'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2006/02/project-server.html' title='Project Server'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-112623960722318195</id><published>2005-09-09T12:15:00.001+08:00</published><updated>2011-07-08T11:36:30.867+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Black Belt Advance Articles</title><content type='html'>Recently just involved in SQL Server 2000 Reporting Services Business Intelligence Development, found out a must read articles for any one who would like to master in SQL Server, the web site is at &lt;a href="http://databasejournal.com/article.php/1459531"&gt;http://databasejournal.com/article.php/1459531&lt;/a&gt; by William E. Pearson, III&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-112623960722318195?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://databasejournal.com/article.php/1459531' title='SQL Black Belt Advance Articles'/><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/112623960722318195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=112623960722318195&amp;isPopup=true' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/112623960722318195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/112623960722318195'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/09/sql-black-belt-advance-articles.html' title='SQL Black Belt Advance Articles'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111338388852194574</id><published>2005-04-13T16:58:00.001+08:00</published><updated>2011-07-08T11:36:48.176+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>MSDAORA Oracle upgrade connectivity Problem</title><content type='html'>Oracle client always have connectivity problem to the Oracle database server due to the improper configuration in C:\Oracle\Ora81\network\ADMIN\TNSNAMES.ORA (Assume you did not change the default install folder)&lt;br /&gt;&lt;br /&gt;Sometimes you may experience all the configuration are fine, you also can use TNSPING and SQLPLUS to access the ORACLE server without problem, but your Application using MSDAORA provider is facing problem to access the Oracle Server, you may get the error like:-&lt;br /&gt;Error while trying to retrieve text for error ORA-03121&lt;br /&gt;This is usually happen after you upgraded your Oracle client, you have restarted your machine, all the TNSNAMES.ORA entries are correct, everything is fine except your application, either ASP, ASP.NET, VB.NET or any application that use MSDAORA provider.&lt;br /&gt;Why the problem happen is, after you upgraded your Oracle client, your MSDAORA still pointing to the old Oracle version, that's why the problem occurs.&lt;br /&gt;To resolve this problem, goto your machine MSDAORA home C:\Program Files\Common Files\System\Ole DB folder, you will see there are some .reg files:-&lt;br /&gt;mtxoci81_winnt.reg&lt;br /&gt;mtxoci81_win2k.reg&lt;br /&gt;mtxoci7x_winnt.reg&lt;br /&gt;mtxoci7x_win2k.reg&lt;br /&gt;If your Oracle client is 8.1 with Windows 2000 and above, double click the mtxoci81_win2k.reg file to register the new registry for the newer client. Then restart your machine, the problem will be solved automatically.&lt;br /&gt;The content of the mtxoci81_win2k.reg is &lt;br /&gt;REGEDIT4&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]&lt;br /&gt;"OracleXaLib"="oraclient8.dll"&lt;br /&gt;"OracleSqlLib"="orasql8.dll"&lt;br /&gt;"OracleOciLib"="oci.dll" &lt;br /&gt;The nice thing about Oracle is, once the Oracle problem is resolved, you will enjoy with Oracle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111338388852194574?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111338388852194574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111338388852194574&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111338388852194574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111338388852194574'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/04/msdaora-oracle-upgrade-connectivity.html' title='MSDAORA Oracle upgrade connectivity Problem'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111336265463991513</id><published>2005-04-13T10:45:00.001+08:00</published><updated>2011-07-08T11:37:14.493+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><title type='text'>ADO filter with NULL value</title><content type='html'>NULL value in database means no storage in the cell, if you use ADO to query the data and you would like to filter the NULL value, it will be a challenge for a lot of programmers.&lt;br /&gt;&lt;br /&gt;Let's see the following code:-&lt;br /&gt;&lt;br /&gt;dim rs, strSQL&lt;br /&gt;strSQL = "SELECT EmployeeId, ReportsTo FROM Employees"&lt;br /&gt;Set rs = CreateObject("ADODB.Recordset")&lt;br /&gt;rs.cursorlocation = 3 ' -- adUseClient&lt;br /&gt;rs.Open strSQL, connobj ' -- Assume the connobj already has open connection&lt;br /&gt;do while not rs.eof&lt;br /&gt;rs.movenext&lt;br /&gt;loop&lt;br /&gt;rs.close&lt;br /&gt;&lt;br /&gt;The code above is retreiving data from MS SQL Server Northwind database, it tries to get the employeeId and superior employee Id (reportsTo column).&lt;br /&gt;&lt;br /&gt;Let's say the requirement is those employee without superior display in one panel and those employee with superior display in another panel.&lt;br /&gt;&lt;br /&gt;I believe no one want to query the database two times by using SQL query "SELECT EmployeeId, ReportsTo From Employees WHERE ReportsTo IS NULL" and "SELECT EmployeeId, ReportsTo From Employees WHERE ReportsTo IS NOT NULL", so we will query one time from the database by re-using the above code.&lt;br /&gt;&lt;br /&gt;You will add another code before the while loop:-&lt;br /&gt;rs.filter = "ReportsTo IS NULL"&lt;br /&gt;&lt;br /&gt;Immediately you will get this error:-&lt;br /&gt;Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another&lt;br /&gt;&lt;br /&gt;The reason being is because ADO Filter does not support "IS" and "NULL" statement, even you tried to use the filter as ISNULL(ReportsTo, 'N/A') = 'N/A' also get the same problem.&lt;br /&gt;&lt;br /&gt;The only solution to this is back to the SQL query, change the query as&lt;br /&gt;SELECT EmployeeId, &lt;span style="color: #ff6666;"&gt;ISNULL(ReportsTo, 'N/A')&lt;/span&gt; FROM Employees&lt;br /&gt;&lt;br /&gt;Then the rs.filter use ReportsTo = 'N/A' will solve the problem, the whole code is shown below:-&lt;br /&gt;&lt;br /&gt;dim rs, strSQL&lt;br /&gt;strSQL = "&lt;span style="color: #ff6666;"&gt;SELECT EmployeeId, ISNULL(ReportsTo, 'N/A') FROM Employees&lt;/span&gt;"&lt;br /&gt;Set rs = CreateObject("ADODB.Recordset")&lt;br /&gt;rs.cursorlocation = 3 ' -- adUseClient&lt;br /&gt;rs.Open strSQL, connobj ' -- Assume the connobj already has open connection&lt;br /&gt;&lt;span style="color: #ff6666;"&gt;rs.Filter = "ReportsTo = 'N/A'"&lt;/span&gt;&lt;br /&gt;do while not rs.eof&lt;br /&gt;' -- Display Data in Superior Panel&lt;br /&gt;rs.movenext&lt;br /&gt;loop&lt;br /&gt;&lt;span style="color: #ff6666;"&gt;rs.Filter = "ReportsTo &amp;lt;&amp;gt; 'N/A'"&lt;/span&gt;&lt;br /&gt;do while not rs.eof&lt;br /&gt;' -- Display Data in Subordinate Panel &lt;br /&gt;rs.movenext&lt;br /&gt;loop&lt;br /&gt;rs.close&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111336265463991513?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111336265463991513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111336265463991513&amp;isPopup=true' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111336265463991513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111336265463991513'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/04/ado-filter-with-null-value.html' title='ADO filter with NULL value'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111208381563791192</id><published>2005-03-29T15:35:00.001+08:00</published><updated>2011-07-08T11:37:27.786+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Dynamic SQL FAQ 1: Convert conditional dynamic SQL string to stored proc</title><content type='html'>A lot of programmers coded the SQL query in dynamic SQL either in presentation layer or inside stored procedure, it has created a lot of problems in performance, security, maintenanbility, network and memory. More in &lt;a href="http://www.sommarskog.se/dynamic_sql.html"&gt;The Curse and Blessings of Dynamic SQL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;From today onwards, I will compose a FAQ how to convert dynamic SQL to proper stored proc.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dynamic SQL FAQ 1: Convert conditional dynamic SQL string to stored proc&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The first FAQ I always heard is "I have a query based on a parameter, if the parameter is ALL, there will be no filter, if the parameter is a comma delimeter string (CSV), the query result will be filtered by the multiple values string in CSV format.&lt;br /&gt;&lt;br /&gt;It has 2 challenges here:-&lt;br /&gt;1) How to split the comma delimeter string&lt;br /&gt;2) How to filter the result when it is not 'All'&lt;br /&gt;&lt;br /&gt;It can be achieved easily by using dynamic SQL, the sample below is using SQL Server Northwind database with querying from SQL Query Analyser:-&lt;br /&gt;&lt;br /&gt;declare @strSQL varchar(1000), @param varchar(100)&lt;br /&gt;set @param = 'All'&lt;br /&gt;set @param = '1,2,3'&lt;br /&gt;set @strSQL = 'select * from employees'&lt;br /&gt;if @param &amp;lt;&amp;gt; 'All'&lt;br /&gt;set @strSQL = @strSQL + ' where employeeid in (' + @param + ')'&lt;br /&gt;exec(@strSQL)&lt;br /&gt;&lt;br /&gt;Let's see the 1st challenge, to split the CSV string, we can use the split function provided from Microsoft SQL Server Magazine &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqlmag01/html/TreatYourself.asp"&gt;Treat Yourself to Fn_Split():&lt;br /&gt;This UDF lets you emulate VB's Split() function and parameter arrays &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then you can split the string by using the query easily:-&lt;br /&gt;&lt;br /&gt;SELECT value FROM dbo.fn_split(@s, ',')&lt;br /&gt;&lt;br /&gt;To filter either 'All' or not 'All', we have to use the power of "OR" operator, then the above dynamic SQL can be converted to proper SQL query as below:-&lt;br /&gt;&lt;br /&gt;declare @s varchar(100)&lt;br /&gt;&lt;br /&gt;set @s = '1,2,3'&lt;br /&gt;--set @s = 'All'&lt;br /&gt;&lt;br /&gt;select * from employees&lt;br /&gt;where (@s &amp;lt;&amp;gt; 'All' AND employeeid in (SELECT value FROM dbo.fn_split(@s, ',')))&lt;br /&gt;OR (@s = 'All')&lt;br /&gt;&lt;br /&gt;Let's give me FIVE!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111208381563791192?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111208381563791192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111208381563791192&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111208381563791192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111208381563791192'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/03/dynamic-sql-faq-1-convert-conditional.html' title='Dynamic SQL FAQ 1: Convert conditional dynamic SQL string to stored proc'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111164294541168342</id><published>2005-03-24T13:24:00.001+08:00</published><updated>2011-07-08T11:37:41.642+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><title type='text'>Microsoft JET Database Engine error '80004005' Unspecified error</title><content type='html'>When you try to access JET data source like MS Access or MS Excel from your Active Server Pages (ASP), you may get this problem&lt;br /&gt;&lt;br /&gt;Microsoft JET Database Engine error '80004005'&lt;br /&gt;&lt;br /&gt;Unspecified error&lt;br /&gt;&lt;br /&gt;You have set the permission of your IUSR_ComputerName user to full control, may be you already give full control permission to everyone, but the problem still occur.&lt;br /&gt;&lt;br /&gt;You also reinstalled your JET with latest service pack, rebooted the server, but the problem still exists.&lt;br /&gt;&lt;br /&gt;The problem actually is you have set the environment variables TMP and TEMP to invalid temporary folder.&lt;br /&gt;&lt;br /&gt;Please access the Microsoft Knowledge base for more details:-&lt;br /&gt;PRB: "Disk or Network Error" or "Unspecified Error" Returned when Using Jet&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/251254" target="_KB"&gt;http://support.microsoft.com/kb/251254&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After set the environment variables correctly, please remember to restart your computer. If it still can not work, you may need to change the temporary folder or set the temporary folder have EVERYONE full control.&lt;br /&gt;&lt;br /&gt;Good luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111164294541168342?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111164294541168342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111164294541168342&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111164294541168342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111164294541168342'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/03/microsoft-jet-database-engine-error.html' title='Microsoft JET Database Engine error &apos;80004005&apos; Unspecified error'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111148575515254228</id><published>2005-03-22T17:35:00.001+08:00</published><updated>2011-07-08T11:37:53.984+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><title type='text'>IIS Log Analysis with Log Parser 2.2</title><content type='html'>How to analyze your website usage? How many users access your web site? Where is the top 10 URL in your web application? There are many questions you may ask after you deployed your web application into production web server.&lt;br /&gt;&lt;br /&gt;You may think to write a small program to read from your web server log files, it will not be simple, you have to spend sometime to study web server log file, programming it open the log file by date, aggregate the data, filter the data, order the data, accept input from users and etc..&lt;br /&gt;&lt;br /&gt;Wait a minute, there is a better way to do this: -&lt;br /&gt;&lt;br /&gt;Thanks to Microsoft, they have provided a very powerful log analysis tool - Log Parser, now it is version 2.2, you can download it at &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&amp;amp;displaylang=en" target="_MS"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&amp;amp;displaylang=en&lt;/a&gt;. There is also an unofficial Log Parser support website at &lt;a href="http://www.logparser.com/" target="_LOGPARSER"&gt;http://www.logparser.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The beauty part of the Log Parser is it combines the power of SQL query to query the data like RDBMS. It can be output to chart, grid, XML, SQL and other formats.&lt;br /&gt;&lt;br /&gt;I have execute the Log Parser in my IIS web server to trace my web pages usage on March 2005 by using the following log parser command plus SQL query:-&lt;br /&gt;&lt;pre&gt;logparser -i:IISW3C -o:Datagrid&lt;br /&gt;"SELECT&lt;br /&gt;date,&lt;br /&gt;cs-uri-stem,&lt;br /&gt;count(*) AS ACCESS_PER_DAY&lt;br /&gt;FROM&lt;br /&gt;c:\winnt\system32\logfiles\w3svc1\ex0503*.log&lt;br /&gt;WHERE&lt;br /&gt;cs-uri-stem LIKE '/myreport/%.asp'&lt;br /&gt;GROUP BY&lt;br /&gt;date,&lt;br /&gt;cs-uri-stem&lt;br /&gt;ORDER BY &lt;br /&gt;DATE"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It gives me the output in Grid:-&lt;br /&gt;&lt;pre&gt;date       cs-uri-stem     ACCESS_PER_DAY&lt;br /&gt;2005-03-08 /myreport/A.asp              1&lt;br /&gt;2005-03-08 /myreport/B.asp              2&lt;br /&gt;2005-03-08 /myreport/A.asp              6&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111148575515254228?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111148575515254228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111148575515254228&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111148575515254228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111148575515254228'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/03/iis-log-analysis-with-log-parser-22.html' title='IIS Log Analysis with Log Parser 2.2'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111112713489461233</id><published>2005-03-18T14:01:00.000+08:00</published><updated>2011-07-08T11:39:50.733+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Disable Control+C in javascript</title><content type='html'>How to disable control+C in your web page to prevent user simply copy your text? Here is the code:-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;function Disable_Control_C() {&lt;br /&gt;var keystroke = String.fromCharCode(event.keyCode).toLowerCase();&lt;br /&gt;&lt;br /&gt;if (event.ctrlKey &amp;&amp;amp; keystroke == 'c') {&lt;br /&gt;event.returnValue = false; // disable Ctrl+C&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;//--!&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body onkeydown="javascript:Disable_Control_C()"&amp;gt;&lt;br /&gt;Hello World!&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;NOTE: You may need to disable the right click and menu bar to prevent user to copy from your text.&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111112713489461233?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111112713489461233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111112713489461233&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111112713489461233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111112713489461233'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/03/disable-controlc-in-javascript.html' title='Disable Control+C in javascript'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111096862332433130</id><published>2005-03-16T18:04:00.001+08:00</published><updated>2011-07-08T11:38:53.516+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Convert dynamic SQL to stored procedure by using CASE</title><content type='html'>I always access other programmer code, I saw the code interesting and challenging today - the code is in ASP VBScript + dynamic SQL, the purpose of the code is to generate the SQL query string based on web page querystring, the code is as below:-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;StrSQL = "select * from fact_drive_failures2 where day_id = " &amp;amp; request("day_id")&lt;br /&gt;If request("floor") &amp;lt;&amp;gt; "" Then&lt;br /&gt;StrSQL = strSQL &amp;amp; " and floor_id = " &amp;amp; request(“floor_id”)&lt;br /&gt;End If&lt;/span&gt;&lt;br /&gt;I believe this is a very common practice for many programmers. With the dynamic SQL string with the ASP code, it has many pitfalls in security, performance, permission, network traffic and many more disadvantages...&lt;br /&gt;&lt;br /&gt;I convert this code to MS SQL Server stored procedure:-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;CREATE PROCEDURE dbo.GET_DATA&lt;br /&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;@pn_DayId int,&lt;br /&gt;@pv_FloorId varchar(1000)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;Select * from fact_data&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;where day_id = @pn_dayid &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;and floor_id = &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;case @pv_Floor = ‘’ then floor_id &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;else @pv_floor end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;/span&gt;&lt;br /&gt;Now the stored procedure can be called by front-end application without worrying the string concatenation, easier to maintain, better security and the performance is much better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111096862332433130?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111096862332433130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111096862332433130&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111096862332433130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111096862332433130'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/03/convert-dynamic-sql-to-stored.html' title='Convert dynamic SQL to stored procedure by using CASE'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11485029.post-111096705226451890</id><published>2005-03-16T17:44:00.000+08:00</published><updated>2005-03-18T14:29:56.433+08:00</updated><title type='text'>My blog is alive!</title><content type='html'>Finally, my blog is alive!&lt;br /&gt;&lt;br /&gt;I have been in software devlopment in Microsoft and Unix with more than 10 years experience, I have trained many software developers either during my work, speaking in technical conference and IT training center, it is glad to share my tips and tricks online here.&lt;br /&gt;&lt;br /&gt;Let's start!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11485029-111096705226451890?l=ybng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ybng.blogspot.com/feeds/111096705226451890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11485029&amp;postID=111096705226451890&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111096705226451890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11485029/posts/default/111096705226451890'/><link rel='alternate' type='text/html' href='http://ybng.blogspot.com/2005/03/my-blog-is-alive.html' title='My blog is alive!'/><author><name>NG Yew Ban 友万</name><uri>http://www.blogger.com/profile/00424801301932125515</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://bp2.blogger.com/_q6neV_eBCeI/R8-36DzhZcI/AAAAAAAAABM/DI49rGof9iQ/S220/ybng.jpg'/></author><thr:total>0</thr:total></entry></feed>
