<?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-7622867083899678654</id><updated>2012-01-11T13:30:30.157+05:30</updated><category term='C Programming'/><category term='Xml'/><category term='Oracle - .NET'/><category term='Javascript - XmlHttp'/><category term='Oracle'/><category term='Javascript'/><category term='Ajax'/><category term='Programming'/><category term='Batch File'/><category term='ESRI'/><category term='.NET'/><title type='text'>Front end and Back end</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default?start-index=101&amp;max-results=100'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>164</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-7060213303762671162</id><published>2012-01-09T15:14:00.013+05:30</published><updated>2012-01-09T15:25:38.735+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Browser Close Event - Javascript</title><content type='html'>Below is the sample html + java script source which helps to understand regarding how to fire the browser close event.&lt;br /&gt;Beside below way of handling there is an another way. We can use use the body unload event and then in the unload event we will check the cursor position if it is near to window close button which mean user has tried to click on close button.&lt;br /&gt;But this will not work if user says Alt+F4 or closes from task bar directly.&lt;br /&gt;&lt;br /&gt;Scenario, like say if app should update database as logged out when user closes the browser.&lt;br /&gt;This can be handled by calling a web page using XmlHttp request in the below "WindowClose" function.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;function WindowClose(event) {&lt;br /&gt;event = event || window.event;&lt;br /&gt;&lt;br /&gt;var confirmClose = "This is to fire the close event of browser";&lt;br /&gt;&lt;br /&gt;if (event) {&lt;br /&gt;event.returnValue = confirmClose;&lt;br /&gt;}&lt;br /&gt;return confirmClose;&lt;br /&gt;}&lt;br /&gt;window.onbeforeunload = WindowClose;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;&amp;lt;div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;After running the above ones and while trying to close the browser, dialog appears as per below screen shot.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UooyVj4RBUc/Twq4_aRd8PI/AAAAAAAAB6U/FQa5bJFEuKQ/s1600/snapshot.PNG" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="192" width="320" src="http://3.bp.blogspot.com/-UooyVj4RBUc/Twq4_aRd8PI/AAAAAAAAB6U/FQa5bJFEuKQ/s320/snapshot.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The same applies for Firefox and IE Browser&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-7060213303762671162?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/7060213303762671162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=7060213303762671162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7060213303762671162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7060213303762671162'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2012/01/browser-close-event-javascript.html' title='Browser Close Event - Javascript'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-UooyVj4RBUc/Twq4_aRd8PI/AAAAAAAAB6U/FQa5bJFEuKQ/s72-c/snapshot.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8198996707074270409</id><published>2009-03-24T21:20:00.000+05:30</published><updated>2009-03-26T14:33:01.479+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to draw rectangles from a given graph removing the common vertical lines using JavaScript.</title><content type='html'>Please refer &lt;br /&gt;&lt;a target=”_blank” href=http://programmerfindings.blogspot.com/2009/03/how-to-draw-lines-using-java-script.html&gt;Draw line using third party java script file&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As explained in above post that the third party java script file makes our task very easier to draw objects.&lt;br /&gt;Now by using this java script file, I would like to share my HTML page and java script code to generate below.&lt;br /&gt;&lt;b&gt;Output:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SckBoDACvFI/AAAAAAAAA8E/wZXM4NJWpGI/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SckBoDACvFI/AAAAAAAAA8E/wZXM4NJWpGI/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316782622599461970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/b&gt;&lt;br /&gt;Note : This is a basic HTML page, so it is not specific to technology&lt;br /&gt;Input :-&lt;br /&gt;User enters number of rectangles in input text box and clicks on “Generate rectangles”, to generate random rectangles.&lt;br /&gt;It should generate mentioned number of rectangles with random height and width but base lined bottoms (similar to a graph).&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SckBnzEWKXI/AAAAAAAAA70/8XBwlTTyWL0/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SckBnzEWKXI/AAAAAAAAA70/8XBwlTTyWL0/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316782618322545010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;When user clicks on “Generate button” giving number of input rectangles as 10.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SckBn93FpQI/AAAAAAAAA78/cISVwboeWwc/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SckBn93FpQI/AAAAAAAAA78/cISVwboeWwc/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316782621219726594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now output: When user clicks on “Generate Output”, we should draw those rectangles as shown below.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SckBoDACvFI/AAAAAAAAA8E/wZXM4NJWpGI/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SckBoDACvFI/AAAAAAAAA8E/wZXM4NJWpGI/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316782622599461970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Removing the vertical lines between rectangles to display as union but at last the area of all these output rectangles should be same as are of all input rectangles.&lt;br /&gt;Note:&lt;br /&gt;If you would like to copy the below HTML page to run, Make sure that the third party graphics JavaScript file is downloaded into your machine and placed in this application folder where you are creating this HTML page.&lt;br /&gt;Down third party JavaScript file by clicking here&lt;br /&gt;&lt;a href="http://www.walterzorn.com/scripts/wz_jsgraphics.zip" target='_blank'&gt;wz_jsgraphics.zip download&lt;/a&gt;&lt;br /&gt;HTML File :&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Rectangles&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;link rel="stylesheet" type="text/css" href="Styles/Stylesheet.css" /&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="Canvas" style="position:relative;height:5px;width:5px;"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript" src="wz_jsgraphics.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    var jg = new jsGraphics("Canvas");    // Use the "Canvas" div for drawing      &lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    var orgX=50;&lt;br /&gt;    var orgY=200;&lt;br /&gt;    var minWdth=20;&lt;br /&gt;    var minHght=30;&lt;br /&gt;    var maxWdth=60;&lt;br /&gt;    var maxHght=120;&lt;br /&gt;    var rndFactor=10;&lt;br /&gt;    var opShft=150;&lt;br /&gt;    var lnCntr=0;&lt;br /&gt;    var tmr=50;&lt;br /&gt;    var iprects=null;&lt;br /&gt;    var oprects=null;&lt;br /&gt;    var argCnt;&lt;br /&gt;    var inpCntr=0;&lt;br /&gt;    var rects=new Array();  &lt;br /&gt;    var ipTmr=50;&lt;br /&gt;    var optmr=50;&lt;br /&gt;    var recCntr=0;&lt;br /&gt;    function rect()&lt;br /&gt;    {&lt;br /&gt;     var width;&lt;br /&gt;     var height;&lt;br /&gt;     var id; &lt;br /&gt;     var x1;&lt;br /&gt;     var y1;&lt;br /&gt;    }&lt;br /&gt;    function generaterectangles_clk()&lt;br /&gt;    {&lt;br /&gt;     var txtRec=document.getElementById('txtRects');&lt;br /&gt;     if(txtRec.value=='')&lt;br /&gt;     {&lt;br /&gt;      alert('Please enter number of rectangles to generate');&lt;br /&gt;      txtRec.focus();&lt;br /&gt;      return;&lt;br /&gt;     }&lt;br /&gt;     if(!IsNumber(txtRec.value))&lt;br /&gt;     {&lt;br /&gt;      alert('Please enter numeric value');&lt;br /&gt;      txtRec.focus();&lt;br /&gt;      return;&lt;br /&gt;     }&lt;br /&gt;     var numRects=txtRec.value;&lt;br /&gt;     if(numRects&amp;lt;3 || numRects&amp;gt;30)&lt;br /&gt;     {&lt;br /&gt;      alert('Number of rectangles to generate should be between 3 and 30');&lt;br /&gt;      txtRec.focus();&lt;br /&gt;      return;&lt;br /&gt;     }&lt;br /&gt;     orgX=50;&lt;br /&gt;     orgY=400;&lt;br /&gt;     argCnt=numRects;&lt;br /&gt;     inpCntr=0;&lt;br /&gt;     rects=new Array();  &lt;br /&gt;      GenerateRects();      &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function GenerateRects()&lt;br /&gt;    {&lt;br /&gt;    inpCntr++;&lt;br /&gt;    if(inpCntr&amp;lt;=argCnt)&lt;br /&gt;    {&lt;br /&gt;      var rand_no;&lt;br /&gt;      var recWth,recHgt; &lt;br /&gt;      rand_no = Math.random();&lt;br /&gt;      recWth=Math.floor(minWdth+(maxWdth-minWdth)*rand_no);&lt;br /&gt;      recHgt=Math.floor(minHght+(maxHght-minHght)*rand_no);&lt;br /&gt;      var objRect=new rect();&lt;br /&gt;      objRect.width=recWth;&lt;br /&gt;      objRect.height=recHgt;&lt;br /&gt;      objRect.id=(inpCntr);&lt;br /&gt;      rects[rects.length]=objRect;&lt;br /&gt;      DefineRects(rects);      &lt;br /&gt;      setTimeout('GenerateRects();',ipTmr);&lt;br /&gt;     }&lt;br /&gt;     else&lt;br /&gt;     {&lt;br /&gt;        var divdisp=document.getElementById('div_recIndx');&lt;br /&gt;       divdisp.style.display='none';&lt;br /&gt;       divdisp.innerText='';&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;    function dispRecIndex(x1,y1,txt)&lt;br /&gt;    {        &lt;br /&gt;        var divdisp=document.getElementById('div_recIndx');&lt;br /&gt;        divdisp.style.display='block';&lt;br /&gt;        divdisp.innerText=txt;&lt;br /&gt;        divdisp.style.left=x1;&lt;br /&gt;        divdisp.style.top=y1;&lt;br /&gt;    }&lt;br /&gt;    function DefineRects(argRects)&lt;br /&gt;    {&lt;br /&gt;    jg.clear();&lt;br /&gt;    var x1=orgX;&lt;br /&gt;    var y1=orgY;&lt;br /&gt;    var buf=5;&lt;br /&gt;    var crd=findPosition(document.getElementById('div_map'));&lt;br /&gt;    var maxY=crd[1]-buf;&lt;br /&gt;    var maxX=document.getElementById('div_map').offsetWidth+crd[0]-buf;&lt;br /&gt;    var minY=crd[1]-document.getElementById('div_map').offsetHeight;&lt;br /&gt;    var minX=crd[0];&lt;br /&gt;    var objRect=new rect();&lt;br /&gt;       for(i=0;i&amp;lt;argRects.length;i++)&lt;br /&gt;       {       &lt;br /&gt;         objRect=argRects[i];&lt;br /&gt;         if(x1&amp;lt;maxX &amp;&amp; x1&amp;gt;minX)&lt;br /&gt;          {&lt;br /&gt;          objRect.x1=x1;&lt;br /&gt;          objRect.y1=y1;                    &lt;br /&gt;          x1+=objRect.width;          &lt;br /&gt;          }&lt;br /&gt;          else&lt;br /&gt;          {&lt;br /&gt;          for(j=i;j&amp;lt;argRects.length;j++)&lt;br /&gt;          argRects[j]=null;&lt;br /&gt;          break;&lt;br /&gt;          }&lt;br /&gt;          if(y1&amp;lt;maxY &amp;&amp; y1&amp;gt;minY)&lt;br /&gt;          {&lt;br /&gt;          objRect.y1=maxY;  &lt;br /&gt;          }&lt;br /&gt;          argRects[i]=objRect;         &lt;br /&gt;       }&lt;br /&gt;       iprects=argRects;&lt;br /&gt;       for(i=0;i&amp;lt;argRects.length;i++)&lt;br /&gt;       {&lt;br /&gt;           if(argRects[i]==null)&lt;br /&gt;           break;&lt;br /&gt;          objRect=argRects[i];&lt;br /&gt;          var xc=new Array();&lt;br /&gt;          var yc=new Array();&lt;br /&gt;          xc[0]=objRect.x1;&lt;br /&gt;          yc[0]=objRect.y1;&lt;br /&gt;          xc[1]=objRect.x1+objRect.width;&lt;br /&gt;          yc[1]=objRect.y1;&lt;br /&gt;          xc[2]=objRect.x1+objRect.width;&lt;br /&gt;          yc[2]=objRect.y1-objRect.height;&lt;br /&gt;          xc[3]=objRect.x1;&lt;br /&gt;          yc[3]=objRect.y1-objRect.height;&lt;br /&gt;          xc[4]=objRect.x1;&lt;br /&gt;          yc[4]=objRect.y1;&lt;br /&gt;          clr=clr1;&lt;br /&gt;          dispRecIndex((xc[0]+xc[1])/2,(yc[0]+yc[2])/2,(i+1));&lt;br /&gt;          drawRect(xc,yc);&lt;br /&gt;       }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;   &lt;br /&gt;    &lt;br /&gt;    function generateoutput_clk()&lt;br /&gt;    {&lt;br /&gt;        if(iprects==null)&lt;br /&gt;        return;&lt;br /&gt;        var argRects=new Array();&lt;br /&gt;        for(i=0;i&amp;lt;iprects.length;i++)&lt;br /&gt;        {&lt;br /&gt;            if(iprects[i]==null )&lt;br /&gt;            break;&lt;br /&gt;            var objRect=iprects[i];        &lt;br /&gt;            var obj=new rect();&lt;br /&gt;            obj.x1=objRect.x1;&lt;br /&gt;            obj.y1=objRect.y1;&lt;br /&gt;            obj.width=objRect.width;&lt;br /&gt;            obj.height=objRect.height;&lt;br /&gt;            obj.id=objRect.id;&lt;br /&gt;            argRects[i]=obj;&lt;br /&gt;        }&lt;br /&gt;        var prx1,pry1,crx1,cry1;&lt;br /&gt;        for(i=0;i&amp;lt;argRects.length;i++)&lt;br /&gt;        {        &lt;br /&gt;        if(argRects[i]==null )&lt;br /&gt;        continue;        &lt;br /&gt;        var currect=argRects[i];    &lt;br /&gt;            for(var j=i-1;j&amp;gt;=0;j--)&lt;br /&gt;            {&lt;br /&gt;                if(argRects[j]==null)&lt;br /&gt;                 continue;&lt;br /&gt;                 var prvrect=argRects[j];&lt;br /&gt;                 if(iprects[j].height&amp;lt;=iprects[i].height)&lt;br /&gt;                 break;&lt;br /&gt;                 if(prvrect.y1!=currect.y1)&lt;br /&gt;                 continue;&lt;br /&gt;                  if(iprects[j].height==iprects[i].height &amp;&amp; j==i-1)&lt;br /&gt;                 {&lt;br /&gt;                  currect.width=currect.width+iprects[j].width;  &lt;br /&gt;                  iprects[j]=null;&lt;br /&gt;                  argRects[j]=null;&lt;br /&gt;                 continue;&lt;br /&gt;                 }&lt;br /&gt;                 currect.x1=prvrect.x1;&lt;br /&gt;                 currect.y1=prvrect.y1;&lt;br /&gt;                 currect.width=currect.width+prvrect.width; &lt;br /&gt;                if(prvrect.y1-prvrect.height&amp;lt;=currect.y1-currect.height)&lt;br /&gt;                 {&lt;br /&gt;                     prvrect.y1=currect.y1-currect.height;&lt;br /&gt;                     prvrect.height=prvrect.height-currect.height;&lt;br /&gt;                 }&lt;br /&gt;                 argRects[i]=currect;&lt;br /&gt;            }&lt;br /&gt;           for(var j=i+1;j&amp;lt;argRects.length;j++)&lt;br /&gt;            {&lt;br /&gt;                if(argRects[j]==null)&lt;br /&gt;                continue;&lt;br /&gt;                var nxtrect=argRects[j];&lt;br /&gt;                if(nxtrect.y1!=currect.y1)&lt;br /&gt;                 continue;                &lt;br /&gt;                if(iprects[j].height&amp;lt;iprects[i].height)&lt;br /&gt;                break;&lt;br /&gt;                 if(iprects[j].height==iprects[i].height &amp;&amp; j==i+1)&lt;br /&gt;                 {&lt;br /&gt;                  currect.width=currect.width+iprects[j].width;  &lt;br /&gt;                  iprects[j]=null;&lt;br /&gt;                  argRects[j]=null;&lt;br /&gt;                 continue;&lt;br /&gt;                 }&lt;br /&gt;                currect.width=currect.width+iprects[j].width;  &lt;br /&gt;                if(nxtrect.y1-nxtrect.height&amp;lt;=currect.y1-currect.height)&lt;br /&gt;                {&lt;br /&gt;                nxtrect.y1=currect.y1-currect.height;&lt;br /&gt;                nxtrect.height=nxtrect.height-currect.height;                              &lt;br /&gt;                }&lt;br /&gt;                argRects[i]=currect;&lt;br /&gt;                &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        oprects=argRects;&lt;br /&gt;         recCntr=0;         &lt;br /&gt;         drawOp();&lt;br /&gt;    }    &lt;br /&gt;    function drawOp()&lt;br /&gt;    {&lt;br /&gt;        var argRects=oprects;&lt;br /&gt;        if(oprects==null)&lt;br /&gt;        return;&lt;br /&gt;        var i=recCntr;&lt;br /&gt;        if(argRects[i]!=null)&lt;br /&gt;        {&lt;br /&gt;            objRect=argRects[i];&lt;br /&gt;            var xc=new Array();&lt;br /&gt;            var yc=new Array();&lt;br /&gt;            xc[0]=objRect.x1;&lt;br /&gt;            yc[0]=objRect.y1+opShft;&lt;br /&gt;            xc[1]=objRect.x1+objRect.width;&lt;br /&gt;            yc[1]=objRect.y1+opShft;&lt;br /&gt;            xc[2]=objRect.x1+objRect.width;&lt;br /&gt;            yc[2]=objRect.y1-objRect.height+opShft;&lt;br /&gt;            xc[3]=objRect.x1;&lt;br /&gt;            yc[3]=objRect.y1-objRect.height+opShft;&lt;br /&gt;            xc[4]=objRect.x1;&lt;br /&gt;            yc[4]=objRect.y1+opShft;&lt;br /&gt;            clr=clr1;&lt;br /&gt;            drawRect(xc,yc);&lt;br /&gt;            dispRecIndex((xc[0]+xc[1])/2,(yc[0]+yc[2])/2,(i+1));&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;            var divdisp=document.getElementById('div_recIndx');&lt;br /&gt;            divdisp.style.display='none';&lt;br /&gt;            divdisp.innerText='';&lt;br /&gt;        }&lt;br /&gt;        recCntr++;&lt;br /&gt;        if(recCntr&amp;lt;=argRects.length)&lt;br /&gt;        setTimeout('drawOp();',optmr);&lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;  &lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function IsNumber(argText)&lt;br /&gt;    {&lt;br /&gt;        var nums='0123456789';&lt;br /&gt;        for(i=0;i&amp;lt;argText.length;i++)&lt;br /&gt;        {&lt;br /&gt;        if(nums.indexOf(argText.charAt(i))==-1)&lt;br /&gt;        return false;&lt;br /&gt;        }&lt;br /&gt;        return true;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    var clr="red";&lt;br /&gt;    var clr1='red';&lt;br /&gt;    var clr2='green';&lt;br /&gt;    var clr3='blue';&lt;br /&gt;    var strk=2;&lt;br /&gt;   function drawRect(xc,yc)&lt;br /&gt;   {   &lt;br /&gt;    jg.setStroke(strk); &lt;br /&gt;    jg.setColor(clr);&lt;br /&gt;    jg.drawPolygon(xc,yc);            &lt;br /&gt;    jg.paint(); &lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;    function findPosition(element)&lt;br /&gt;    {&lt;br /&gt;    var left = 0;&lt;br /&gt;    var top = 0;&lt;br /&gt; &lt;br /&gt;    if (element != null)&lt;br /&gt;        {&lt;br /&gt;            while (element.offsetParent)&lt;br /&gt;                {&lt;br /&gt;                left += element.offsetLeft;&lt;br /&gt;                if (element.offsetParent.scrollLeft) {left -= element.offsetParent.scrollLeft; }&lt;br /&gt;             top += element.offsetTop;&lt;br /&gt;                if (element.offsetParent.scrollTop) { top -= element.offsetParent.scrollTop; }&lt;br /&gt;                element = element.offsetParent;&lt;br /&gt;                }&lt;br /&gt;        left += element.offsetLeft + document.body.scrollLeft - document.body.clientLeft + 7;&lt;br /&gt;        top += element.offsetTop + document.body.scrollTop - document.body.clientTop;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    return [left,top];    &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function DisplayText(argText)&lt;br /&gt;    {&lt;br /&gt;    var obj=document.getElementById('div_map');&lt;br /&gt;    var divdwn=document.getElementById('div_download');&lt;br /&gt;    divdwn.style.display='block';&lt;br /&gt;    divdwn.innerText=argText;&lt;br /&gt;     var crd=findPosition(obj);&lt;br /&gt;     divdwn.style.left=crd[0];&lt;br /&gt;     divdwn.style.top=crd[1]+40;&lt;br /&gt;     document.getElementById('btnDisp').style.display='block';&lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &lt;br /&gt;   &lt;br /&gt;&amp;lt;table id="maintable"  style="width:800px;"&amp;gt;&lt;br /&gt;&amp;lt;tr class="tr_header"&amp;gt;&lt;br /&gt;&amp;lt;td style="width:40%;text-align:right;"&amp;gt;Number of Input Rectangles :&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="txtRects"  /&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td class="tr_header" style="text-align:center;" colspan="2"&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="Generate Rectangles" class="cssbutton" style="width:200px" onclick="generaterectangles_clk();"/&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="Generate Output" class="cssbutton" style="width:200px;" onclick="generateoutput_clk();"/&amp;gt;&lt;br /&gt;    &amp;nbsp;&lt;br /&gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td colspan="2"&amp;gt;&lt;br /&gt;    &amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;    &amp;lt;div id="div_map" style="width:800px;height:600px;border: 3px solid #ccc; " &amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;div id="div_download" class="div_down" style="position:absolute;height:500;display:none"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="div_recIndx"  style="position:absolute;height:50;display:none"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8198996707074270409?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8198996707074270409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8198996707074270409' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8198996707074270409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8198996707074270409'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/03/how-to-draw-rectangles-from-given-graph.html' title='How to draw rectangles from a given graph removing the common vertical lines using JavaScript.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SckBoDACvFI/AAAAAAAAA8E/wZXM4NJWpGI/s72-c/3.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-6801050157324366023</id><published>2009-03-24T20:48:00.000+05:30</published><updated>2009-03-27T14:42:23.466+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Auto amount format using java script</title><content type='html'>I would like to share my java script function that validates user input while entering amount in a specific amount field text box.&lt;br /&gt;Things to validate&lt;br /&gt;1) Is it always positive amount?&lt;br /&gt;2) Should not allow user to enter characters other than (0123456789-.).&lt;br /&gt;3) Should not allow user to type “.”, if value in text box already has “.”.&lt;br /&gt;4) Should not allow user to type “-”, if value in text box already has “-”.&lt;br /&gt;5) Should insert “-“at zero (0) index when user types “-“at index other than zero.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTML Page: &lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt; //list of characters that are to be allowed for a valid double value (either positive or negative)&lt;br /&gt;var PosDoubleChars=".0123456789";&lt;br /&gt;var NegDoubleChars="-.0123456789";&lt;br /&gt;//function that add's events to the given text box control to handle it for amount validations&lt;br /&gt;function AmountControl(obj,msg,blnNeg)&lt;br /&gt;{&lt;br /&gt;//Checking if textbox control should allow negative or positive double values&lt;br /&gt;if(blnNeg)&lt;br /&gt;AllowNegDouble(obj);&lt;br /&gt;else&lt;br /&gt;AllowPosDouble(obj);&lt;br /&gt;//setting on focus out event to automatically format given input anount&lt;br /&gt;obj.onfocusout=function(){ValidateAmount(obj,msg,blnNeg);};   &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function AllowNegDouble(obj)&lt;br /&gt;{&lt;br /&gt;AllowChars(obj,NegDoubleChars);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function AllowPosDouble(obj)&lt;br /&gt;{&lt;br /&gt;AllowChars(obj,PosDoubleChars);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function AllowChars(obj,argChrs)&lt;br /&gt;{&lt;br /&gt;//adding key press evet to restrict user from entering characters other than mentioned list&lt;br /&gt;//of double characters&lt;br /&gt;   obj.onkeypress=function(){return CheckChar(obj,event.keyCode,argChrs);}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//checking the character code to allow it.&lt;br /&gt;&lt;br /&gt;function CheckChar(obj,kyCd,argChrs)&lt;br /&gt;{&lt;br /&gt;if(argChrs==PosDoubleChars)&lt;br /&gt;    {&lt;br /&gt;        if(kyCd&amp;gt;=46 &amp;&amp; kyCd&amp;lt;=58 )&lt;br /&gt;        {&lt;br /&gt;            if(kyCd==47)&lt;br /&gt;            {&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;            if(kyCd==46)&lt;br /&gt;             {&lt;br /&gt;                    for(var i=0;i&amp;lt;obj.value.length;i++)&lt;br /&gt;                    {&lt;br /&gt;                        if(obj.value.charAt(i)=='.')&lt;br /&gt;                        {&lt;br /&gt;                        return false;&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;            }&lt;br /&gt;            return true;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;    if(argChrs==NegDoubleChars)&lt;br /&gt;    {&lt;br /&gt;        if((kyCd&amp;gt;=46 &amp;&amp; kyCd&amp;lt;=58) || (kyCd==45))&lt;br /&gt;        {&lt;br /&gt;            if(kyCd==47)&lt;br /&gt;            {&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;            if(kyCd==45)&lt;br /&gt;            {&lt;br /&gt;                if(obj.value.indexOf('-')!=-1)&lt;br /&gt;                {                    &lt;br /&gt;                return false;&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {              &lt;br /&gt;                 obj.value='-'+obj.value;     &lt;br /&gt;                return false;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            if(kyCd==46)&lt;br /&gt;             {&lt;br /&gt;                    for(var i=0;i&amp;lt;obj.value.length;i++)&lt;br /&gt;                    {&lt;br /&gt;                        if(obj.value.charAt(i)=='.')&lt;br /&gt;                        {&lt;br /&gt;                        return false;&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;            }&lt;br /&gt;            return true;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//validating and fomratting amount&lt;br /&gt;function ValidateAmount(obj,msg,blnNeg)&lt;br /&gt;{&lt;br /&gt;obj.value=replaceAll(obj.value,',','');&lt;br /&gt; var amtval=obj.value;  &lt;br /&gt;    if(amtval=='')&lt;br /&gt;    return true; &lt;br /&gt;    var numb=obj.value.substr(0,obj.value.indexOf('.'));&lt;br /&gt;    if(numb.length&amp;lt;=16)&lt;br /&gt;    obj.value=FormatAmount(parseFloat(obj.value).toFixed(4));&lt;br /&gt;    if(obj.value=="NaN")&lt;br /&gt;    obj.value="0.00";&lt;br /&gt;    return true;&lt;br /&gt;}&lt;br /&gt;//to replace specific character with speific character in given input string&lt;br /&gt;function replaceAll(wrd,frm,to)&lt;br /&gt;{&lt;br /&gt;   var Char;&lt;br /&gt;   var fnl='';&lt;br /&gt;   for (i = 0; i &amp;lt; wrd.length ; i++) &lt;br /&gt;      { &lt;br /&gt;      if (wrd.charAt(i)==frm) &lt;br /&gt;         {&lt;br /&gt;         fnl+=to;&lt;br /&gt;         }&lt;br /&gt;         else&lt;br /&gt;         fnl+=wrd.charAt(i);&lt;br /&gt;      }&lt;br /&gt;      return fnl;&lt;br /&gt;}&lt;br /&gt;//auto formatting&lt;br /&gt;function FormatAmount(nStr)&lt;br /&gt;{&lt;br /&gt; nStr += '';&lt;br /&gt; x = nStr.split('.');&lt;br /&gt; x1 = x[0];&lt;br /&gt; x2 = x.length &amp;gt; 1 ? '.' + x[1] : '';&lt;br /&gt; var rgx = /(\d+)(\d{3})/;&lt;br /&gt; while (rgx.test(x1)) {&lt;br /&gt;  x1 = x1.replace(rgx, '$1' + ',' + '$2');&lt;br /&gt; }&lt;br /&gt; return x1 + x2;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;Amount : &amp;lt;input type="text" id="txtAmount" /&amp;gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;//I am calling the above created function saying ‘txtAmount’ as amount control //that should handle all above validations.&lt;br /&gt;//It  should allow negative decimals as I said true&lt;br /&gt;&lt;b&gt;AmountControl(document.getElementById('txtAmount'),'Please enter valid amount',true);&lt;/b&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;b&gt;UI : &lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/Scj6S0yt03I/AAAAAAAAA7c/ERhwUOPt_x8/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/Scj6S0yt03I/AAAAAAAAA7c/ERhwUOPt_x8/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316774561426822002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Intput:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/Scj6THWkEdI/AAAAAAAAA7k/eBHZK_42fF4/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 205px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/Scj6THWkEdI/AAAAAAAAA7k/eBHZK_42fF4/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316774566409015762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;1) It it allowing me to enter negative value but if once"-" is typed in middle it is automatically getting inserted at beginning and not allowing to type “-“ again if the amount is already negative.&lt;br /&gt;2) It is allowing me to type "."  But if amount is already having decimal it is not allowing to type “." again if the amount is already negative.&lt;br /&gt;&lt;br /&gt;3) Not allowing me to type characters other than specified (0123456789-.).&lt;br /&gt;&lt;br /&gt;4) Automatically formatting amount by rounding off to 4 decimals if user focuses out from the amount text box.&lt;br /&gt;Output:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/Scj6TODuMyI/AAAAAAAAA7s/o6Q9iRYuO2s/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 175px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/Scj6TODuMyI/AAAAAAAAA7s/o6Q9iRYuO2s/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316774568209036066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-6801050157324366023?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/6801050157324366023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=6801050157324366023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6801050157324366023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6801050157324366023'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/03/auto-amount-format-using-java-script.html' title='Auto amount format using java script'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/Scj6S0yt03I/AAAAAAAAA7c/ERhwUOPt_x8/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-7360394059311083246</id><published>2009-03-24T18:37:00.000+05:30</published><updated>2009-03-24T21:25:59.865+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to draw layout of a rectangular graph using Javascript ?</title><content type='html'>Please refer &lt;br /&gt;&lt;a target=”_blank” href=http://programmerfindings.blogspot.com/2009/03/how-to-draw-lines-using-java-script.html&gt;Draw line using third party java script file&lt;/a&gt;&lt;br /&gt;As explained in above post that the third party java script file makes our task very easier to draw objects.&lt;br /&gt;Now by using this java script file, I would like to share my HTML page and java script code to generate below.&lt;br /&gt;&lt;b&gt;Output:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/ScjbarN938I/AAAAAAAAA7U/OkRWfk8B_nc/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/ScjbarN938I/AAAAAAAAA7U/OkRWfk8B_nc/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316740611435257794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt; Note : This is a basic HTML page, so it is not specific to technology&lt;/b&gt;&lt;br /&gt;Input :-&lt;br /&gt;User enters number of rectangles in input text box and clicks on “Generate rectangles”, to generate random rectangles.&lt;br /&gt;It should generate mentioned number of rectangles with random height and width but base lined bottoms (similar to a graph).&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/ScjbZyxqyXI/AAAAAAAAA7E/2FbWV8qpEkE/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/ScjbZyxqyXI/AAAAAAAAA7E/2FbWV8qpEkE/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316740596284180850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;When user clicks on “Generate button” giving number of input rectangles as 10.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/ScjbaTQ1uKI/AAAAAAAAA7M/OznyejbRXv8/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/ScjbaTQ1uKI/AAAAAAAAA7M/OznyejbRXv8/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316740605004855458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now output: When user clicks on Display Layout, we should draw only the outline or layout of the given input graph.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/ScjbarN938I/AAAAAAAAA7U/OkRWfk8B_nc/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/ScjbarN938I/AAAAAAAAA7U/OkRWfk8B_nc/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316740611435257794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;br /&gt;If you would like to copy the below HTML page to run, Make sure that the third party graphics JavaScript file is downloaded into your machine and placed in this application folder where you are creating this HTML page.&lt;br /&gt;Down third party JavaScript file by clicking here&lt;br /&gt;&lt;a href="http://www.walterzorn.com/scripts/wz_jsgraphics.zip" target='_blank'&gt;wz_jsgraphics.zip download&lt;/a&gt; &lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;HTML File :&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Rectangles&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;link rel="stylesheet" type="text/css" href="Styles/Stylesheet.css" /&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="Canvas" style="position:relative;height:5px;width:5px;"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript" src="wz_jsgraphics.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    var jg = new jsGraphics("Canvas");    // Use the "Canvas" div for drawing      &lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    var orgX=50;&lt;br /&gt;    var orgY=200;&lt;br /&gt;    var minWdth=20;&lt;br /&gt;    var minHght=30;&lt;br /&gt;    var maxWdth=60;&lt;br /&gt;    var maxHght=120;&lt;br /&gt;    var rndFactor=10;&lt;br /&gt;    var lnCntr=0;&lt;br /&gt;    var tmr=50;&lt;br /&gt;    var iprects=null;&lt;br /&gt;    var argCnt;&lt;br /&gt;    var inpCntr=0;&lt;br /&gt;    var rects=new Array();  &lt;br /&gt;    var ipTmr=50;&lt;br /&gt;    var optmr=50;&lt;br /&gt;    var recCntr=0;&lt;br /&gt;    function rect()&lt;br /&gt;    {&lt;br /&gt;     var width;&lt;br /&gt;     var height;&lt;br /&gt;     var id; &lt;br /&gt;     var x1;&lt;br /&gt;     var y1;&lt;br /&gt;    }&lt;br /&gt;    function generaterectangles_clk()&lt;br /&gt;    {&lt;br /&gt;     var txtRec=document.getElementById('txtRects');&lt;br /&gt;     if(txtRec.value=='')&lt;br /&gt;     {&lt;br /&gt;      alert('Please enter number of rectangles to generate');&lt;br /&gt;      txtRec.focus();&lt;br /&gt;      return;&lt;br /&gt;     }&lt;br /&gt;     if(!IsNumber(txtRec.value))&lt;br /&gt;     {&lt;br /&gt;      alert('Please enter numeric value');&lt;br /&gt;      txtRec.focus();&lt;br /&gt;      return;&lt;br /&gt;     }&lt;br /&gt;     var numRects=txtRec.value;&lt;br /&gt;     if(numRects&amp;lt;3 || numRects&amp;gt;30)&lt;br /&gt;     {&lt;br /&gt;      alert('Number of rectangles to generate should be between 3 and 30');&lt;br /&gt;      txtRec.focus();&lt;br /&gt;      return;&lt;br /&gt;     }&lt;br /&gt;     orgX=50;&lt;br /&gt;     orgY=400;&lt;br /&gt;     argCnt=numRects;&lt;br /&gt;     inpCntr=0;&lt;br /&gt;     rects=new Array();  &lt;br /&gt;      GenerateRects();      &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function GenerateRects()&lt;br /&gt;    {&lt;br /&gt;    inpCntr++;&lt;br /&gt;    if(inpCntr&amp;lt;=argCnt)&lt;br /&gt;    {&lt;br /&gt;      var rand_no;&lt;br /&gt;      var recWth,recHgt;     &lt;br /&gt;      rand_no = Math.random();&lt;br /&gt;      recWth=Math.floor(minWdth+(maxWdth-minWdth)*rand_no);&lt;br /&gt;      recHgt=Math.floor(minHght+(maxHght-minHght)*rand_no);&lt;br /&gt;      var objRect=new rect();&lt;br /&gt;      objRect.width=recWth;&lt;br /&gt;      objRect.height=recHgt;&lt;br /&gt;      objRect.id=(inpCntr);&lt;br /&gt;      rects[rects.length]=objRect;&lt;br /&gt;      DefineRects(rects);      &lt;br /&gt;      setTimeout('GenerateRects();',ipTmr);&lt;br /&gt;     }&lt;br /&gt;     else&lt;br /&gt;     {&lt;br /&gt;        var divdisp=document.getElementById('div_recIndx');&lt;br /&gt;       divdisp.style.display='none';&lt;br /&gt;       divdisp.innerText='';&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;    function dispRecIndex(x1,y1,txt)&lt;br /&gt;    {        &lt;br /&gt;        var divdisp=document.getElementById('div_recIndx');&lt;br /&gt;        divdisp.style.display='block';&lt;br /&gt;        divdisp.innerText=txt;&lt;br /&gt;        divdisp.style.left=x1;&lt;br /&gt;        divdisp.style.top=y1;&lt;br /&gt;    }&lt;br /&gt;    function DefineRects(argRects)&lt;br /&gt;    {&lt;br /&gt;    jg.clear();&lt;br /&gt;    var x1=orgX;&lt;br /&gt;    var y1=orgY;&lt;br /&gt;    var buf=5;&lt;br /&gt;    var crd=findPosition(document.getElementById('div_map'));&lt;br /&gt;    var maxY=crd[1]-buf;&lt;br /&gt;    var maxX=document.getElementById('div_map').offsetWidth+crd[0]-buf;&lt;br /&gt;    var minY=crd[1]-document.getElementById('div_map').offsetHeight;&lt;br /&gt;    var minX=crd[0];&lt;br /&gt;    var objRect=new rect();&lt;br /&gt;       for(i=0;i&amp;lt;argRects.length;i++)&lt;br /&gt;       {       &lt;br /&gt;         objRect=argRects[i];&lt;br /&gt;         if(x1&amp;lt;maxX &amp;&amp; x1&amp;gt;minX)&lt;br /&gt;          {&lt;br /&gt;          objRect.x1=x1;&lt;br /&gt;          objRect.y1=y1;                    &lt;br /&gt;          x1+=objRect.width;          &lt;br /&gt;          }&lt;br /&gt;          else&lt;br /&gt;          {&lt;br /&gt;          for(j=i;j&amp;lt;argRects.length;j++)&lt;br /&gt;          argRects[j]=null;&lt;br /&gt;          break;&lt;br /&gt;          }&lt;br /&gt;          if(y1&amp;lt;maxY &amp;&amp; y1&amp;gt;minY)&lt;br /&gt;          {&lt;br /&gt;          objRect.y1=maxY;  &lt;br /&gt;          }&lt;br /&gt;          argRects[i]=objRect;         &lt;br /&gt;       }&lt;br /&gt;       iprects=argRects;&lt;br /&gt;       for(i=0;i&amp;lt;argRects.length;i++)&lt;br /&gt;       {&lt;br /&gt;           if(argRects[i]==null)&lt;br /&gt;           break;&lt;br /&gt;          objRect=argRects[i];&lt;br /&gt;          var xc=new Array();&lt;br /&gt;          var yc=new Array();&lt;br /&gt;          xc[0]=objRect.x1;&lt;br /&gt;          yc[0]=objRect.y1;&lt;br /&gt;          xc[1]=objRect.x1+objRect.width;&lt;br /&gt;          yc[1]=objRect.y1;&lt;br /&gt;          xc[2]=objRect.x1+objRect.width;&lt;br /&gt;          yc[2]=objRect.y1-objRect.height;&lt;br /&gt;          xc[3]=objRect.x1;&lt;br /&gt;          yc[3]=objRect.y1-objRect.height;&lt;br /&gt;          xc[4]=objRect.x1;&lt;br /&gt;          yc[4]=objRect.y1;&lt;br /&gt;          clr=clr1;&lt;br /&gt;          dispRecIndex((xc[0]+xc[1])/2,(yc[0]+yc[2])/2,(i+1));&lt;br /&gt;          drawRect(xc,yc);&lt;br /&gt;       }&lt;br /&gt;    } &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;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function IsNumber(argText)&lt;br /&gt;    {&lt;br /&gt;        var nums='0123456789';&lt;br /&gt;        for(i=0;i&amp;lt;argText.length;i++)&lt;br /&gt;        {&lt;br /&gt;        if(nums.indexOf(argText.charAt(i))==-1)&lt;br /&gt;        return false;&lt;br /&gt;        }&lt;br /&gt;        return true;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    var clr="red";&lt;br /&gt;    var clr1='red';&lt;br /&gt;    var clr2='green';&lt;br /&gt;    var clr3='blue';&lt;br /&gt;    var strk=2;&lt;br /&gt;   function drawRect(xc,yc)&lt;br /&gt;   {   &lt;br /&gt;    jg.setStroke(strk); &lt;br /&gt;    jg.setColor(clr);&lt;br /&gt;    jg.drawPolygon(xc,yc);            &lt;br /&gt;    jg.paint(); &lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;    function findPosition(element)&lt;br /&gt;    {&lt;br /&gt;    var left = 0;&lt;br /&gt;    var top = 0;&lt;br /&gt; &lt;br /&gt;    if (element != null)&lt;br /&gt;        {&lt;br /&gt;            while (element.offsetParent)&lt;br /&gt;                {&lt;br /&gt;                left += element.offsetLeft;&lt;br /&gt;                if (element.offsetParent.scrollLeft) {left -= element.offsetParent.scrollLeft; }&lt;br /&gt;             top += element.offsetTop;&lt;br /&gt;                if (element.offsetParent.scrollTop) { top -= element.offsetParent.scrollTop; }&lt;br /&gt;                element = element.offsetParent;&lt;br /&gt;                }&lt;br /&gt;        left += element.offsetLeft + document.body.scrollLeft - document.body.clientLeft + 7;&lt;br /&gt;        top += element.offsetTop + document.body.scrollTop - document.body.clientTop;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    return [left,top];    &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function DisplayText(argText)&lt;br /&gt;    {&lt;br /&gt;    var obj=document.getElementById('div_map');&lt;br /&gt;    var divdwn=document.getElementById('div_download');&lt;br /&gt;    divdwn.style.display='block';&lt;br /&gt;    divdwn.innerText=argText;&lt;br /&gt;     var crd=findPosition(obj);&lt;br /&gt;     divdwn.style.left=crd[0];&lt;br /&gt;     divdwn.style.top=crd[1]+40;&lt;br /&gt;     document.getElementById('btnDisp').style.display='block';&lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function rect()&lt;br /&gt;    {&lt;br /&gt;     var x1,y1,x2,y2,x3,y3,x4,y4;&lt;br /&gt;    }&lt;br /&gt;    function GetRectangles()&lt;br /&gt;    {&lt;br /&gt;            if(iprects==null)&lt;br /&gt;            return;&lt;br /&gt;            var rectCrds=new Array();&lt;br /&gt;       for(i=0;i&amp;lt;iprects.length;i++)&lt;br /&gt;       {&lt;br /&gt;            var objRect=iprects[i];          &lt;br /&gt;            var objrect=new rect();&lt;br /&gt;            objrect.x3=objRect.x1;&lt;br /&gt;            objrect.y3=objRect.y1-objRect.height;&lt;br /&gt;            objrect.x2=objRect.x1+objRect.width;&lt;br /&gt;            objrect.y2=objRect.y1;&lt;br /&gt;            objrect.x1=objrect.x3;&lt;br /&gt;            objrect.y1=objrect.y2;&lt;br /&gt;            objrect.x4=objrect.x2;&lt;br /&gt;            objrect.y4=objrect.y3;&lt;br /&gt;            rectCrds[i]=objrect;&lt;br /&gt;       }&lt;br /&gt;       return rectCrds;&lt;br /&gt;    }&lt;br /&gt;   function sortRects(rects)&lt;br /&gt;   {&lt;br /&gt;     for(var c=0;c&amp;lt;rects.length;c++)&lt;br /&gt;        {&lt;br /&gt;         var rect=rects[c];&lt;br /&gt;         for(var k=c+1;k&amp;lt;rects.length;k++)&lt;br /&gt;         {&lt;br /&gt;           var tmprect=rects[k];&lt;br /&gt;           if(tmprect.x1&amp;lt;rect.x1)&lt;br /&gt;           {&lt;br /&gt;             rects[c]=tmprect;&lt;br /&gt;             rects[k]=rect;&lt;br /&gt;           }&lt;br /&gt;         }&lt;br /&gt;        }&lt;br /&gt;        return rects;&lt;br /&gt;   }&lt;br /&gt;    function DisplayLayout()&lt;br /&gt;    {&lt;br /&gt;        lnCntr=0;&lt;br /&gt;        var rectCrds=GetRectangles();&lt;br /&gt;        rectCrds=sortRects(rectCrds);&lt;br /&gt;        var xc=new Array();&lt;br /&gt;        var yc=new Array();&lt;br /&gt;        var cnt=-1;&lt;br /&gt;        var prevRect=null;&lt;br /&gt;        var nextRect=null;&lt;br /&gt;            for(var c=0;c&amp;lt;rectCrds.length;c++)&lt;br /&gt;            {&lt;br /&gt;                var actRec=rectCrds[c];&lt;br /&gt;                if(c+1==rectCrds.length)&lt;br /&gt;                nextRect=null;&lt;br /&gt;                else&lt;br /&gt;                nextRect=rectCrds[c+1];&lt;br /&gt;                if(c==0)&lt;br /&gt;                {&lt;br /&gt;                    cnt++;&lt;br /&gt;                    xc[cnt]=actRec.x1;&lt;br /&gt;                    yc[cnt]=actRec.y1;&lt;br /&gt;                    cnt++;&lt;br /&gt;                    xc[cnt]=actRec.x3;&lt;br /&gt;                    yc[cnt]=actRec.y3;&lt;br /&gt;                    if(nextRect!=null &amp;&amp; nextRect.x1&amp;lt;actRec.x4)&lt;br /&gt;                    {&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=nextRect.x1;&lt;br /&gt;                        yc[cnt]=actRec.y3;&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=actRec.x4;&lt;br /&gt;                        yc[cnt]=actRec.y4;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                if(nextRect!=null)&lt;br /&gt;                {&lt;br /&gt;                 if((nextRect.x1/actRec.x2)==1 &amp;&amp; (actRec.y2/nextRect.y1)==1)&lt;br /&gt;                 {&lt;br /&gt;                    cnt++;&lt;br /&gt;                    xc[cnt]=nextRect.x3;&lt;br /&gt;                    yc[cnt]=nextRect.y3;&lt;br /&gt;                    cnt++;&lt;br /&gt;                    xc[cnt]=nextRect.x4;&lt;br /&gt;                    yc[cnt]=nextRect.y4;&lt;br /&gt;                 }&lt;br /&gt;                 else&lt;br /&gt;                 {&lt;br /&gt;                 &lt;br /&gt;                 if(nextRect!=null)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;br /&gt;                        if(nextRect.x3==actRec.x4)&lt;br /&gt;                        {&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=nextRect.x3;&lt;br /&gt;                        yc[cnt]=nextRect.y3;&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=nextRect.x4;&lt;br /&gt;                        yc[cnt]=nextRect.y4;&lt;br /&gt;                        }&lt;br /&gt;                        else if(nextRect.x3&amp;lt;actRec.x4)&lt;br /&gt;                        {&lt;br /&gt;                            if(nextRect.y3&amp;lt;actRec.y3)&lt;br /&gt;                            {&lt;br /&gt;                            xc[cnt]=nextRect.x3;&lt;br /&gt;                            yc[cnt]=actRec.y3;&lt;br /&gt;                            cnt++;&lt;br /&gt;                            xc[cnt]=nextRect.x3;&lt;br /&gt;                            yc[cnt]=nextRect.y3;&lt;br /&gt;                            cnt++;&lt;br /&gt;                            xc[cnt]=nextRect.x4;&lt;br /&gt;                            yc[cnt]=nextRect.y4;&lt;br /&gt;                            }&lt;br /&gt;                            else&lt;br /&gt;                            {&lt;br /&gt;                            cnt++;&lt;br /&gt;                            xc[cnt]=actRec.x4;&lt;br /&gt;                            yc[cnt]=actRec.y4;&lt;br /&gt;                            if(actRec.x4&amp;lt;nextRect.x4)&lt;br /&gt;                            {&lt;br /&gt;                            cnt++;&lt;br /&gt;                            xc[cnt]=actRec.x4;&lt;br /&gt;                            yc[cnt]=nextRect.y3;&lt;br /&gt;                            cnt++;&lt;br /&gt;                            xc[cnt]=nextRect.x4;&lt;br /&gt;                            yc[cnt]=nextRect.y4;&lt;br /&gt;                            }&lt;br /&gt;                            else&lt;br /&gt;                            {&lt;br /&gt;                            cnt++;&lt;br /&gt;                            xc[cnt]=actRec.x2;&lt;br /&gt;                            yc[cnt]=actRec.y2;&lt;br /&gt;                            c++;&lt;br /&gt;                            }&lt;br /&gt;                            &lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                        else&lt;br /&gt;                        {&lt;br /&gt;                        if(prevRect!=null &amp;&amp; prevRect.x2&amp;gt;actRec.x2)&lt;br /&gt;                        {&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=actRec.x2;&lt;br /&gt;                        yc[cnt]=prevRect.y3;&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=nextRect.x1;&lt;br /&gt;                        yc[cnt]=prevRect.y3;&lt;br /&gt;                        }&lt;br /&gt;                        else&lt;br /&gt;                        {&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=actRec.x2;                        &lt;br /&gt;                        yc[cnt]=actRec.y2;&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=nextRect.x1;&lt;br /&gt;                        yc[cnt]=nextRect.y1;                        &lt;br /&gt;                        }&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=nextRect.x3;&lt;br /&gt;                        yc[cnt]=nextRect.y3;&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=nextRect.x4;&lt;br /&gt;                        yc[cnt]=nextRect.y4;&lt;br /&gt;                        &lt;br /&gt;                        }&lt;br /&gt;                        &lt;br /&gt;                        &lt;br /&gt;                    }&lt;br /&gt;                    &lt;br /&gt;                 }                 &lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    if(prevRect!=null &amp;&amp; actRec.x2&amp;gt;prevRect.x2)&lt;br /&gt;                    {&lt;br /&gt;                        cnt++;&lt;br /&gt;                        xc[cnt]=actRec.x2;&lt;br /&gt;                        yc[cnt]=actRec.y2;&lt;br /&gt;                     }&lt;br /&gt;                }&lt;br /&gt;                prevRect=actRec;&lt;br /&gt;             &lt;br /&gt;            }        &lt;br /&gt;            cnt++;&lt;br /&gt;            xc[cnt]=xc[0];&lt;br /&gt;            yc[cnt]=yc[0];&lt;br /&gt;            lyx=xc;&lt;br /&gt;            lyy=yc;&lt;br /&gt;            &lt;br /&gt;            drawLines();&lt;br /&gt;    }&lt;br /&gt;    var lyx=new Array();&lt;br /&gt;    var lyy=new Array();&lt;br /&gt;     var lyclr="black";&lt;br /&gt;        var lystrk=4;&lt;br /&gt;    function drawLines()&lt;br /&gt;    {    &lt;br /&gt;    jg.setColor(lyclr);&lt;br /&gt;    jg.setStroke(lystrk);    &lt;br /&gt;    jg.drawLine(lyx[lnCntr],lyy[lnCntr],lyx[lnCntr+1],lyy[lnCntr+1]);        &lt;br /&gt;    lnCntr++;&lt;br /&gt;    jg.paint(); &lt;br /&gt;    if(lnCntr&amp;lt;lyx.length)&lt;br /&gt;    {&lt;br /&gt;    setTimeout("drawLines()",tmr); &lt;br /&gt;    }    &lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;table id="maintable"  style="width:800px;"&amp;gt;&lt;br /&gt;&amp;lt;tr class="tr_header"&amp;gt;&lt;br /&gt;&amp;lt;td style="width:40%;text-align:right;"&amp;gt;Number of Input Rectangles :&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="txtRects"  /&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td class="tr_header" style="text-align:center;" colspan="2"&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="Generate Rectangles" class="cssbutton" style="width:200px" onclick="generaterectangles_clk();"/&amp;gt;&lt;br /&gt;    &amp;nbsp;&lt;br /&gt;&amp;lt;input type="button" value="Display Layout" id="btnLayout" onclick="DisplayLayout();" style="width:200px"  class="cssbutton"/&amp;gt;&lt;br /&gt; &amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td colspan="2"&amp;gt;&lt;br /&gt;    &amp;nbsp;&amp;lt;br /&amp;gt;&lt;br /&gt;    &amp;lt;div id="div_map" style="width:800px;height:600px;border: 3px solid #ccc; " &amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;div id="div_download" class="div_down" style="position:absolute;height:500;display:none"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="div_recIndx"  style="position:absolute;height:50;display:none"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-7360394059311083246?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/7360394059311083246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=7360394059311083246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7360394059311083246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7360394059311083246'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/03/how-to-draw-layout-of-rectangular-graph.html' title='How to draw layout of a rectangular graph using Javascript ?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/ScjbarN938I/AAAAAAAAA7U/OkRWfk8B_nc/s72-c/3.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-809684665245806602</id><published>2009-03-24T18:19:00.000+05:30</published><updated>2009-03-24T18:46:09.121+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to draw lines using java script?</title><content type='html'>I have goggled about this and found an excellent third party JavaScript file which is when referred helps to create a line or poly line (continuous lines with start and end point) very easily.&lt;br /&gt;Please click on this link to down load Third party JavaScript file.&lt;br /&gt;&lt;a href="http://www.walterzorn.com/scripts/wz_jsgraphics.zip" target='_blank'&gt;wz_jsgraphics.zip download&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Please click on this link to explore the members this third party javascript file has&lt;br /&gt;&lt;a href="http://www.draw2d.org/draw2d/files/jsdoc/overview-wz_jsgraphics.js.html" target='_blank'&gt;wz_jsgraphics members&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Ex:-&lt;br /&gt;&lt;br /&gt;I would like to write an HTML file that draws a line on button click using above down loaded JavaScript file.&lt;br /&gt;&lt;b&gt;Note:&lt;br /&gt;If you would like to copy the below HTML page to run, Make sure that the third party graphics JavaScript file is downloaded into your machine and placed in this application folder where you are creating this HTML page.&lt;br /&gt;Down third party JavaScript file by clicking here&lt;br /&gt;&lt;a href="http://www.walterzorn.com/scripts/wz_jsgraphics.zip" target='_blank'&gt;wz_jsgraphics.zip download&lt;/a&gt; &lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Html File :&lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Line&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="Canvas" style="position:relative;height:5px;width:5px;"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;b&gt;&amp;lt;script type="text/javascript" language="javascript" src="wz_jsgraphics.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    var jg = new jsGraphics("Canvas");    // Use the "Canvas" div for drawing      &lt;br /&gt;    function btn_Draw_Clk()&lt;br /&gt;    {&lt;br /&gt;        jg.setStroke(2); &lt;br /&gt;        jg.setColor('red');&lt;br /&gt;        jg.drawLine(10,50,300,200);       &lt;br /&gt;        jg.paint(); &lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;/b&gt;&lt;br /&gt;    &amp;lt;input type="button" value="Draw Line" id="btnDraw" onclick="btn_Draw_Clk();" /&amp;gt;&lt;br /&gt;       &amp;lt;div id="div_map" style="width:800px;height:1000px;border: 3px solid #ccc; " &amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;User interface:&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/ScjXwwbThfI/AAAAAAAAA60/Zn68Z8_zJNk/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 193px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/ScjXwwbThfI/AAAAAAAAA60/Zn68Z8_zJNk/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316736592743990770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;When user clicks on the “Draw Line” button:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/ScjXw_gsFoI/AAAAAAAAA68/brSEdMMEgXI/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 226px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/ScjXw_gsFoI/AAAAAAAAA68/brSEdMMEgXI/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5316736596793104002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is nothing great on my side to draw a line :), but I was just referring the third party JavaScript file. We can also draw many other objects like rectangle, polygon, point, eclipse, circle.&lt;br /&gt;&lt;br /&gt;I would like to share my more work examples using this third party in  next posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-809684665245806602?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/809684665245806602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=809684665245806602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/809684665245806602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/809684665245806602'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/03/how-to-draw-lines-using-java-script.html' title='How to draw lines using java script?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/ScjXwwbThfI/AAAAAAAAA60/Zn68Z8_zJNk/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8718721562661894208</id><published>2009-03-13T01:24:00.000+05:30</published><updated>2009-03-13T22:01:57.524+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Session Timeout problem for Long running processes</title><content type='html'>There could multiple functionalities or processes in a business or multiple businesses with multiple processes that could run for a very long time.&lt;br /&gt;So if these kinds of business are accessed using web server, definitely session time out could create some problems.&lt;br /&gt;To avert these session time outs, I would like to propose a solution that could be 100% effectual if the web application runs on Intranet.&lt;br /&gt;Mostly long running process deal with database, so I would like to go on by considering the below system or level of communication that happens.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/__bty7fMcKAc/SblovTteLrI/AAAAAAAAA6M/bt-4BHjHGC4/s1600-h/1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 218px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SblovTteLrI/AAAAAAAAA6M/bt-4BHjHGC4/s320/1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5312392397414346418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Since, web server halts the response until the records are completely inserted into the database.user may experience session time out after some time gap.&lt;br /&gt;To avoid this, solution I believe that could be better for LAN based web applications is&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/Sblova5hHjI/AAAAAAAAA6U/1eh3nMxKGHY/s1600-h/2.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 170px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/Sblova5hHjI/AAAAAAAAA6U/1eh3nMxKGHY/s320/2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5312392399343918642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;We cannot do this for Internet as it is not really good option to open thread for each world wide request.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8718721562661894208?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8718721562661894208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8718721562661894208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8718721562661894208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8718721562661894208'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/03/session-timeout-problem-for-long.html' title='Session Timeout problem for Long running processes'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SblovTteLrI/AAAAAAAAA6M/bt-4BHjHGC4/s72-c/1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3558965663410471812</id><published>2009-03-11T21:19:00.001+05:30</published><updated>2009-03-11T21:37:10.700+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle procedure to generate records as per binary tree.</title><content type='html'>We are aware about binary tree structure which looks like&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/Sbfe0FeKS4I/AAAAAAAAA5U/CtuTqzgWqW0/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 112px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/Sbfe0FeKS4I/AAAAAAAAA5U/CtuTqzgWqW0/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311959271910034306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So each node in this binary tree has its respective Childs (2).&lt;br /&gt;We can generate these relations among nodes as database records.&lt;br /&gt;For example:&lt;br /&gt;Node 7 has Node 14 and Node 15 has child nodes, so&lt;br /&gt;The table should have&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/Sbfe0JR6qlI/AAAAAAAAA5c/KxsaUZebNUg/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 226px; height: 320px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/Sbfe0JR6qlI/AAAAAAAAA5c/KxsaUZebNUg/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311959272932420178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Step1)&lt;br /&gt;I have created a table saying “tree”.&lt;br /&gt;&lt;br /&gt;CREATE TABLE TREE ( &lt;br /&gt;PRNT NUMBER, &lt;br /&gt;CHLD NUMBER);&lt;br /&gt;Where PRNT column holds the parent node number and CHLD holds child node number.&lt;br /&gt;Step 2)&lt;br /&gt;I have created an oracle procedure which expects “argMaxLevel” as input number.&lt;br /&gt;This is to generate the nodes of a binary tree to certain level, that is&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SbfhdRCuHPI/AAAAAAAAA6E/CE-wmyYQXc4/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SbfhdRCuHPI/AAAAAAAAA6E/CE-wmyYQXc4/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311962178414058738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Oracle procedure&lt;br /&gt;CREATE OR REPLACE PROCEDURE Createchlds(argMaxLevel IN NUMBER)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;DELETE FROM TREE;&lt;br /&gt;  FOR i IN 2 .. POWER(2,(argMaxLevel))-1&lt;br /&gt;  LOOP&lt;br /&gt;  INSERT INTO TREE VALUES(FLOOR(i/2),i);&lt;br /&gt;  END LOOP;&lt;br /&gt;  COMMIT;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 3)&lt;br /&gt;I said &lt;br /&gt;&lt;b&gt;Exec Createchlds(20)&lt;/b&gt;, which should then generate nodes to level 20&lt;br /&gt;And number of nodes generated are 108575  (Power(2,20))-1.&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/Sbfe0TOsafI/AAAAAAAAA5s/ci9R2rleM4w/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 148px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/Sbfe0TOsafI/AAAAAAAAA5s/ci9R2rleM4w/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311959275603257842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;You can observe there are 1 record missing&lt;br /&gt;1) That record is node 1 which is not inserted as there is no associated parent record to point.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/Sbfe0lITo9I/AAAAAAAAA50/cJ-R70JXG78/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/Sbfe0lITo9I/AAAAAAAAA50/cJ-R70JXG78/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311959280408306642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;The last child record should be (power(2,20)-1) which is 1048575 and it is perfect from above screen shot.&lt;br /&gt;The record with maximum child node is 1048575&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-3558965663410471812?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/3558965663410471812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=3558965663410471812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3558965663410471812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3558965663410471812'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/03/oracle-procedure-to-generate-records-as.html' title='Oracle procedure to generate records as per binary tree.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/Sbfe0FeKS4I/AAAAAAAAA5U/CtuTqzgWqW0/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-6691013764518212628</id><published>2009-03-10T23:10:00.000+05:30</published><updated>2009-03-10T23:11:21.014+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Sql query to get records associated to a node in tree</title><content type='html'>I have seen few guys querying regarding this kind of stuff in orkut communities.&lt;br /&gt;I found this has a solution to resolve.&lt;br /&gt;Query is like&lt;br /&gt;Example :-&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SbamIDm-LZI/AAAAAAAAA40/KJrycPro8eM/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 169px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SbamIDm-LZI/AAAAAAAAA40/KJrycPro8eM/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311615467868007826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;It is very similar to chain marketing.&lt;br /&gt;The below sql functions help us to get the associated child nodes for the given node.&lt;br /&gt; Step1:&lt;br /&gt;I have created a table saying “tree”.&lt;br /&gt;&lt;br /&gt;CREATE TABLE TREE ( &lt;br /&gt;  PRNT  NUMBER, &lt;br /&gt;  CHLD  NUMBER);&lt;br /&gt;Test data :&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SbamIjklhrI/AAAAAAAAA48/TL08pZAEjn4/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 286px; height: 316px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SbamIjklhrI/AAAAAAAAA48/TL08pZAEjn4/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311615476447938226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Step 2:&lt;br /&gt;My sql function &lt;br /&gt;CREATE OR REPLACE FUNCTION Getchilds(argC1 IN VARCHAR)&lt;br /&gt;RETURN VARCHAR IS&lt;br /&gt;CURSOR c1 IS SELECT chld FROM TREE WHERE prnt=argC1;&lt;br /&gt;tmpChld VARCHAR(10);&lt;br /&gt;tmpReturn VARCHAR(100);&lt;br /&gt;tmpSubChilds VARCHAR2(100);&lt;br /&gt;BEGIN&lt;br /&gt;OPEN c1;&lt;br /&gt;tmpReturn:=NULL;&lt;br /&gt;LOOP&lt;br /&gt;FETCH c1 INTO tmpChld;&lt;br /&gt;EXIT WHEN c1%NOTFOUND;&lt;br /&gt;IF(tmpReturn IS NULL) THEN&lt;br /&gt;tmpReturn:=tmpChld;&lt;br /&gt;ELSE&lt;br /&gt;tmpReturn:=tmpReturn||','||tmpChld;&lt;br /&gt;END IF;&lt;br /&gt;tmpSubChilds:=Getchilds(tmpChld);&lt;br /&gt;IF(tmpSubChilds IS NOT NULL) THEN&lt;br /&gt;tmpReturn:=tmpReturn||','||tmpSubChilds;&lt;br /&gt;END IF;&lt;br /&gt;END LOOP;&lt;br /&gt;RETURN tmpReturn;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am using recursion technique here to get the Childs associated to the current node.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;Sql Query&lt;br /&gt;&lt;br /&gt;select Getchilds(1) as Childs from dual&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SbamI_Mda8I/AAAAAAAAA5E/OlWFcFkKK40/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 167px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SbamI_Mda8I/AAAAAAAAA5E/OlWFcFkKK40/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311615483862936514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;select Getchilds(2) as Childs from dual&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SbamJSPZ8QI/AAAAAAAAA5M/FyKHKyXgwCo/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SbamJSPZ8QI/AAAAAAAAA5M/FyKHKyXgwCo/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5311615488975565058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-6691013764518212628?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/6691013764518212628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=6691013764518212628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6691013764518212628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6691013764518212628'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/03/sql-query-to-get-records-associated-to.html' title='Sql query to get records associated to a node in tree'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SbamIDm-LZI/AAAAAAAAA40/KJrycPro8eM/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-286724602754693124</id><published>2009-02-23T22:30:00.001+05:30</published><updated>2009-02-23T23:10:30.536+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>How to get Nth maximum value using sql query?</title><content type='html'>Please refer &lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2009/02/how-to-get-second-maximum-value-using.html" target="_blank"&gt;To find 2nd maximum value using sql query in Prog. Finidngs &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I would like to take the same table considered in above link to find Nth maximum value.&lt;br /&gt;&lt;br /&gt;Let us consider a database table named “Test” and which has a column named “C1”.&lt;br /&gt;Let the data type of C1 be Number&lt;br /&gt;Script:-&lt;br /&gt;&lt;br /&gt;CREATE TABLE test&lt;br /&gt;(&lt;br /&gt;c1 NUMBER&lt;br /&gt;)&lt;br /&gt;I have inserted some random data using&lt;br /&gt;INSERT INTO TEST&lt;br /&gt;SELECT ROUND(dbms_random.value(1,1000),0) FROM dual&lt;br /&gt;Multiple times to insert multiple records.&lt;br /&gt;I have inserted 66 records into this test table&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSqubx0tI/AAAAAAAAA4E/HsJ29nlsOh0/s1600-h/4.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 198px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSqubx0tI/AAAAAAAAA4E/HsJ29nlsOh0/s320/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5306034942456746706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Data (first 30 records)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SaLSRIDdmxI/AAAAAAAAA3s/4jmuIa6owH0/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 98px; height: 320px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SaLSRIDdmxI/AAAAAAAAA3s/4jmuIa6owH0/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5306034502657481490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So we can observe that there are many number of records among which the record with maximum value of C1 with my test data is&lt;br /&gt;select max(c1) from test &lt;br /&gt;983&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSRMYj08I/AAAAAAAAA30/8jWczF5I0v0/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 282px; height: 236px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSRMYj08I/AAAAAAAAA30/8jWczF5I0v0/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5306034503819711426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Now my intention is to find a record whose c1 value should be the highest nth value. &lt;/b&gt;&lt;br /&gt;Query:-&lt;br /&gt;I would like to get the 10th highest value of C1 from test table highlighted in below screen shot.&lt;br /&gt;SELECT * FROM TEST ORDER BY c1 DESC&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SaLWM3_blNI/AAAAAAAAA4M/tjIJM8QNIlQ/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 318px; height: 320px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SaLWM3_blNI/AAAAAAAAA4M/tjIJM8QNIlQ/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5306038827672638674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;So, &lt;b&gt;&lt;br /&gt;SELECT c1 FROM&lt;br /&gt;(SELECT ROWNUM AS MAXINDEX,c1 FROM &lt;br /&gt;(SELECT * FROM TEST ORDER BY c1 DESC)) WHERE MAXINDEX=10&lt;/b&gt; helps me to get the Nth maximum value.&lt;br /&gt;Innermost query gives me set of records from Test table in descending order of C1 column, the next inner query helps to identify the ordered records based on “Rownum”.&lt;br /&gt;Using this rownum, external query can identify specific record at Nth position.&lt;br /&gt;My test data which has 10th maximum value is&lt;br /&gt;853&lt;br /&gt;So i am getting 10th highest value from the column of the table.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SaLWM8fojuI/AAAAAAAAA4U/zrtB9LFIyhY/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 194px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SaLWM8fojuI/AAAAAAAAA4U/zrtB9LFIyhY/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5306038828881448674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-286724602754693124?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/286724602754693124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=286724602754693124' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/286724602754693124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/286724602754693124'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-get-nth-maximum-value-using-sql.html' title='How to get Nth maximum value using sql query?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SaLSqubx0tI/AAAAAAAAA4E/HsJ29nlsOh0/s72-c/4.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3732816342645535444</id><published>2009-02-23T22:13:00.001+05:30</published><updated>2009-02-23T22:19:08.391+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>How to get second maximum value using sql query?</title><content type='html'>Let us consider a database table named “Test” and which has a column named “C1”.&lt;br /&gt;Let the data type of C1 be Number&lt;br /&gt;Script:-&lt;br /&gt;&lt;br /&gt;CREATE TABLE test&lt;br /&gt;(&lt;br /&gt;c1 NUMBER&lt;br /&gt;)&lt;br /&gt;I have inserted some random data using&lt;br /&gt;INSERT INTO TEST&lt;br /&gt;SELECT ROUND(dbms_random.value(1,1000),0) FROM dual&lt;br /&gt;Multiple times to insert multiple records.&lt;br /&gt;I have inserted 66 records into this test table&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSqubx0tI/AAAAAAAAA4E/HsJ29nlsOh0/s1600-h/4.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 198px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSqubx0tI/AAAAAAAAA4E/HsJ29nlsOh0/s320/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5306034942456746706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Data (first 30 records)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SaLSRIDdmxI/AAAAAAAAA3s/4jmuIa6owH0/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 98px; height: 320px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SaLSRIDdmxI/AAAAAAAAA3s/4jmuIa6owH0/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5306034502657481490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So we can observe that there are many number of records among which the record with maximum value of C1 with my test data is&lt;br /&gt;select max(c1) from test &lt;br /&gt;983&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSRMYj08I/AAAAAAAAA30/8jWczF5I0v0/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 282px; height: 236px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSRMYj08I/AAAAAAAAA30/8jWczF5I0v0/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5306034503819711426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Now my intension is to find a record whose c1 value is second highest value.&lt;br /&gt;Query:-&lt;br /&gt;Inner query gives the maximum value available which is 983, so now i am saying to find max value again but whose value should be less than 983 (value from inner query).&lt;br /&gt;Obviously, it is next maximum value.&lt;br /&gt;&lt;b&gt;SELECT MAX(c1) FROM TEST where c1&lt;(SELECT MAX(c1) FROM TEST)&lt;/b&gt;&lt;br /&gt;946 &lt;br /&gt;So i am getting second highest value from the column of the table.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSRctG2qI/AAAAAAAAA38/1gekWdlycIk/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 103px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SaLSRctG2qI/AAAAAAAAA38/1gekWdlycIk/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5306034508200860322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-3732816342645535444?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/3732816342645535444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=3732816342645535444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3732816342645535444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3732816342645535444'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-get-second-maximum-value-using.html' title='How to get second maximum value using sql query?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SaLSqubx0tI/AAAAAAAAA4E/HsJ29nlsOh0/s72-c/4.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-6282997712150182117</id><published>2009-02-23T19:18:00.001+05:30</published><updated>2009-02-23T19:21:27.622+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Progress bar in windows applications .NET.</title><content type='html'>.NET frame work supports few classes that help to place Progress bar in User Interface of windows applications.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SaKpRo661lI/AAAAAAAAA2s/7Xx4dfrU_6s/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SaKpRo661lI/AAAAAAAAA2s/7Xx4dfrU_6s/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989431503279698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;I am creating a windows form that displays this progress bar.&lt;br /&gt;User interface (Windows form) :&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SaKpR4kpWII/AAAAAAAAA20/s17sr-VYLk4/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 216px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SaKpR4kpWII/AAAAAAAAA20/s17sr-VYLk4/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989435704825986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Code :&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SaKpSJI5KfI/AAAAAAAAA28/q58aSy3FbHs/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 185px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SaKpSJI5KfI/AAAAAAAAA28/q58aSy3FbHs/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989440151824882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SaKpSDaqRpI/AAAAAAAAA3E/Zc9BMrkW6QQ/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 182px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SaKpSDaqRpI/AAAAAAAAA3E/Zc9BMrkW6QQ/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989438615733906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SaKpSFJ_4II/AAAAAAAAA3M/8S8Urxd3eAg/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 63px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SaKpSFJ_4II/AAAAAAAAA3M/8S8Urxd3eAg/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989439082717314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.Threading;&lt;br /&gt;namespace DeleteSvn&lt;br /&gt;{&lt;br /&gt;    public partial class frmPrgs : Form&lt;br /&gt;    {&lt;br /&gt;        public frmPrgs()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void btnStart_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            //Get input counter value&lt;br /&gt;            intCounter = Convert.ToInt32(txtTime.Text);&lt;br /&gt;            //set this counter value as maximum value for the progress bae&lt;br /&gt;            prg.Maximum = intCounter;&lt;br /&gt;            //start a thread that sleeps for every 1 second and updates the progress bar&lt;br /&gt;            //to next step after each second&lt;br /&gt;            Thread objThread = new Thread(this.RunThread);&lt;br /&gt;            //start the thread&lt;br /&gt;            objThread.Start();&lt;br /&gt;        }&lt;br /&gt;        int intCounter = 0;&lt;br /&gt;        delegate void UpdPrcs(string strStatusint,int intStep);&lt;br /&gt;        private void UpdateProcess(string strStatus, int prcStep)&lt;br /&gt;        {&lt;br /&gt;            if (InvokeRequired)&lt;br /&gt;            {&lt;br /&gt;                BeginInvoke(new UpdPrcs(this.UpdateProcess), new object[] { strStatus,prcStep});&lt;br /&gt;                return;&lt;br /&gt;            }&lt;br /&gt;            //Updating the components available in wodnows form from the thread&lt;br /&gt;            prg.Value=prcStep;&lt;br /&gt;            lblStaus.Text = "Status : " + strStatus;&lt;br /&gt;            if (prcStep == intCounter)&lt;br /&gt;            {&lt;br /&gt;                prg.Value = 0;&lt;br /&gt;                lblStaus.Text = "Done!";&lt;br /&gt;                MessageBox.Show("Done!");&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private void RunThread()&lt;br /&gt;        {&lt;br /&gt;            int i = 0;&lt;br /&gt;            //increment counter and update UI with the status of counter and progress bar&lt;br /&gt;            while (i &lt; intCounter)&lt;br /&gt;            {&lt;br /&gt;                i++;&lt;br /&gt;                UpdateProcess(i + " / " + intCounter, i);&lt;br /&gt;                Thread.Sleep(1000);&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;Output:-&lt;br /&gt;&lt;br /&gt;When I click on start button after giving value as 10,&lt;br /&gt;So it increments progress bar for each second and when time reaches 10 seconds progress bar is done with 100% and displays message box.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SaKpW_RbaNI/AAAAAAAAA3U/CdDrAOooSbw/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 268px; height: 249px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SaKpW_RbaNI/AAAAAAAAA3U/CdDrAOooSbw/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989523402614994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SaKpW6_rXiI/AAAAAAAAA3c/5dXMghSvCmU/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 268px; height: 249px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SaKpW6_rXiI/AAAAAAAAA3c/5dXMghSvCmU/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989522254421538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SaKpWxr9MqI/AAAAAAAAA3k/VlD3GnlZDKg/s1600-h/8.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 273px; height: 247px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SaKpWxr9MqI/AAAAAAAAA3k/VlD3GnlZDKg/s320/8.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305989519755784866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-6282997712150182117?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/6282997712150182117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=6282997712150182117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6282997712150182117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6282997712150182117'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/progress-bar-in-windows-applications.html' title='Progress bar in windows applications .NET.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SaKpRo661lI/AAAAAAAAA2s/7Xx4dfrU_6s/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-7533454439094332583</id><published>2009-02-23T18:08:00.001+05:30</published><updated>2009-02-23T18:09:40.243+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to implement sorting using .NET Grid view.</title><content type='html'>ASP.NET Grid view control helps developer to implement technique of sorting a column very easily and effectively.&lt;br /&gt;Grid view has an attribute saying “AllowSorting” which is Boolean and when set to true enables sorting functionality for the grid.&lt;br /&gt;I would like to create a asp.net page that has &lt;br /&gt;1) Text box (Expecting count from user to generate random number from 1 to 100).&lt;br /&gt;2) Button (User when clicks on the button after entering count in the text box, it generates random numbers and bind to grid view).&lt;br /&gt;3) Grid view to display generated random numbers and provide sorting technique. &lt;br /&gt;My aspx page&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SaKY6bmnfoI/AAAAAAAAA2M/bvGI0gOuoYk/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 220px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SaKY6bmnfoI/AAAAAAAAA2M/bvGI0gOuoYk/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305971440605429378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Code behind page&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;public partial class Sorting : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;    private void GenerateNumbersAndBindGrid()&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;    protected void grdSort_Sorting(object sender, GridViewSortEventArgs e)&lt;br /&gt;    {&lt;br /&gt;        BindGrid(e.SortExpression,(e.SortDirection==SortDirection.Ascending)?"Asc":"Desc");&lt;br /&gt;    }&lt;br /&gt;    private void BindGrid(string strSortExp,string strSortDire)&lt;br /&gt;    {&lt;br /&gt;        int intCount = Convert.ToInt32(txtCount.Text);&lt;br /&gt;        DataTable dt = Session["DT"] as DataTable;&lt;br /&gt;        if (dt == null)&lt;br /&gt;        {&lt;br /&gt;            Random objRandom = new Random();&lt;br /&gt;            DataRow dRow = null;&lt;br /&gt;            dt = new DataTable();&lt;br /&gt;            dt.Columns.Add(new DataColumn("Num", System.Type.GetType("System.Int32")));&lt;br /&gt;            for (int i = 1; i &lt; intCount; i++)&lt;br /&gt;            {&lt;br /&gt;                dRow = dt.NewRow();&lt;br /&gt;                dRow["Num"] = objRandom.Next(100);&lt;br /&gt;                dt.Rows.Add(dRow);&lt;br /&gt;            }&lt;br /&gt;            Session["DT"] = dt;&lt;br /&gt;        }&lt;br /&gt;        DataView objView = new DataView(dt);&lt;br /&gt;        objView.Sort= strSortExp + " " + strSortDire;&lt;br /&gt;        grdSort.DataSource = objView;&lt;br /&gt;        grdSort.DataBind();&lt;br /&gt;    }&lt;br /&gt;    private void BindGrid()&lt;br /&gt;    {&lt;br /&gt;        int intCount = Convert.ToInt32(txtCount.Text);&lt;br /&gt;        DataTable dt = Session["DT"] as DataTable;&lt;br /&gt;        if (dt == null)&lt;br /&gt;        {&lt;br /&gt;            Random objRandom = new Random();&lt;br /&gt;            DataRow dRow = null;&lt;br /&gt;            dt = new DataTable();&lt;br /&gt;            dt.Columns.Add(new DataColumn("Num", System.Type.GetType("System.Int32")));&lt;br /&gt;            for (int i = 1; i &lt; intCount; i++)&lt;br /&gt;            {&lt;br /&gt;                dRow = dt.NewRow();&lt;br /&gt;                dRow["Num"] = objRandom.Next(100);&lt;br /&gt;                dt.Rows.Add(dRow);&lt;br /&gt;            }&lt;br /&gt;            Session["DT"] = dt;&lt;br /&gt;        }&lt;br /&gt;        grdSort.DataSource = dt;&lt;br /&gt;        grdSort.DataBind();&lt;br /&gt;    }&lt;br /&gt;    protected void btnGenerate_Click(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;         Session["DT"]=null;&lt;br /&gt;        BindGrid();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;Aspx page:&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sorting.aspx.cs" Inherits="Sorting" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Sorting&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;    &amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;    Count :&lt;br /&gt;    &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;&amp;lt;asp:TextBox ID="txtCount" runat="server"&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;asp:Button ID="btnGenerate" runat="server" Text="Generate" OnClick="btnGenerate_Click" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&amp;lt;td colspan="2"&amp;gt;&lt;br /&gt;    &amp;lt;asp:GridView ID="grdSort" runat="server" AllowSorting="true" OnSorting="grdSort_Sorting"&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;    &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;/table&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SaKY6Yzl98I/AAAAAAAAA2U/Mn9OkZll3LM/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SaKY6Yzl98I/AAAAAAAAA2U/Mn9OkZll3LM/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305971439854548930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SaKY6jqHBpI/AAAAAAAAA2c/NJArubGZ9C4/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 278px; height: 320px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SaKY6jqHBpI/AAAAAAAAA2c/NJArubGZ9C4/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305971442767562386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SaKY6qYkRUI/AAAAAAAAA2k/55saLHr-1eg/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 262px; height: 320px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SaKY6qYkRUI/AAAAAAAAA2k/55saLHr-1eg/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5305971444573029698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-7533454439094332583?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/7533454439094332583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=7533454439094332583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7533454439094332583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7533454439094332583'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-implement-sorting-using-net-grid.html' title='How to implement sorting using .NET Grid view.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SaKY6bmnfoI/AAAAAAAAA2M/bvGI0gOuoYk/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-7579695218850384572</id><published>2009-02-23T16:17:00.000+05:30</published><updated>2009-02-23T18:49:55.520+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to read entity value from Xml File .NET?</title><content type='html'>Please refer regarding entities at&lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2009/02/how-to-create-entity-in-xml-file-net.html" target="_blank"&gt;How to create an entity in xml file at Prog. Findings&lt;/a&gt;&lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2009/01/how-to-create-entity-in-xml-files.html" target="_blank"&gt;How to create an entity in xml file using .NET functions at  Prog. Findings&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As said about entities in above links, each entity defined in an xml file can be identified and referred using entity name.&lt;br /&gt;Ex:-&lt;br /&gt;&lt;Entity1 “Desc”&gt;&lt;br /&gt;&lt;br /&gt;&amp;Entity1; in an inner text of a xml tag says Desc when it is loaded.&lt;br /&gt;&lt;br /&gt;So to read these entity values we can refer them using there respective names.&lt;br /&gt;&lt;b&gt;Below function is to read entity value for a given entity name.&lt;/b&gt;&lt;br /&gt;        public string GetEntityValue(string strEntityName)&lt;br /&gt;        {&lt;br /&gt;            if (_xmlDocument != null)&lt;br /&gt;            {&lt;br /&gt;                return _xmlDocument.DocumentType.Entities.GetNamedItem(strEntityName).InnerText;&lt;br /&gt;            }&lt;br /&gt;            return String.Empty; &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Below function is to get Entity name based upon given entity value. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;  public string GetEntityName(string strEntityValue)&lt;br /&gt;        {&lt;br /&gt;            string strEntityName = String.Empty;&lt;br /&gt;            if (_xmlDocument != null)&lt;br /&gt;            {&lt;br /&gt;                for (int i = 0; i &lt; _xmlDocument.DocumentType.Entities.Count; i++)&lt;br /&gt;                {&lt;br /&gt;                    if(_xmlDocument.DocumentType.Entities.Item(i).InnerText.Trim()==strEntityValue.Trim())&lt;br /&gt;                    return _xmlDocument.DocumentType.Entities.Item(i).Name;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return strEntityName;&lt;br /&gt;        }&lt;br /&gt;&lt;b&gt;Below function is to get a lost all available entities with in an xml file. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;  public ArrayList GetEntityNames()&lt;br /&gt;        {&lt;br /&gt;            ArrayList objListEntities = new ArrayList();&lt;br /&gt;            if(_xmlDocument!=null)&lt;br /&gt;            {&lt;br /&gt;                for (int i = 0; i &lt; _xmlDocument.DocumentType.Entities.Count; i++)&lt;br /&gt;                {&lt;br /&gt;                    objListEntities.Add(_xmlDocument.DocumentType.Entities.Item(i).Name);&lt;br /&gt;                }&lt;br /&gt;                objListEntities.Sort();&lt;br /&gt;            }            &lt;br /&gt;            return objListEntities;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;This function returns array list which can further be used to bind list of values to drop down list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-7579695218850384572?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/7579695218850384572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=7579695218850384572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7579695218850384572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7579695218850384572'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-entity-value-from-xml-file-net.html' title='How to read entity value from Xml File .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-5919281950268731745</id><published>2009-02-20T23:21:00.001+05:30</published><updated>2009-02-20T23:21:52.511+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to create entity in an Xml file .NET?</title><content type='html'>Please refer&lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2009/01/how-to-create-entity-in-xml-files.html" target="blank"&gt;Entity in Prog.Findings&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;.NET frame work has provided classes and methods which can be used to create entities in an xml file. I mean to create or delete or update an entity.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Below function is to delete an entity that exists in an xml file.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;public void DeleteEntity(string strEntityName,bool blnChkForDependants)&lt;br /&gt;        {&lt;br /&gt;            if (_xmlDocument != null)&lt;br /&gt;            {&lt;br /&gt;                XmlDocumentType _oldXmlDocumentType = _xmlDocument.DocumentType;&lt;br /&gt;                if(blnChkForDependants)&lt;br /&gt;                {&lt;br /&gt;                    TextReader tr = new StreamReader(FilePath);&lt;br /&gt;                    if (tr.ReadToEnd().Contains("&amp;" + strEntityName + ";"))&lt;br /&gt;                    {&lt;br /&gt;                        tr.Close();&lt;br /&gt;                        throw new Exception("Sorry you cannot delete this entity, there exists dependants on this " + strEntityName + " entity in xml file");&lt;br /&gt;                    }&lt;br /&gt;                    tr.Close();&lt;br /&gt;                }&lt;br /&gt;                string _strExistingSubSet = _oldXmlDocumentType.InternalSubset;&lt;br /&gt;                string _strFromEntity = _strExistingSubSet.Substring(_strExistingSubSet.IndexOf("&lt;!ENTITY " + strEntityName));&lt;br /&gt;                int intEntityEndIndex = _strFromEntity.IndexOf("&gt;");&lt;br /&gt;                string _strEntityString = _strFromEntity.Substring(0,intEntityEndIndex+1);&lt;br /&gt;                _strExistingSubSet = _strExistingSubSet.Replace(_strEntityString, String.Empty);&lt;br /&gt;                XmlDocumentType _newXmlDocumentType = _xmlDocument.CreateDocumentType(_oldXmlDocumentType.Name, _oldXmlDocumentType.PublicId, _oldXmlDocumentType.SystemId, _strExistingSubSet);&lt;br /&gt;                _xmlDocument.ReplaceChild(_newXmlDocumentType, _oldXmlDocumentType);&lt;br /&gt;                _xmlDocument.Save(FilePath);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;b&gt; Below function is to save an exisiting entity or create new entity in xml file&lt;/b&gt;&lt;br /&gt;        public void SaveEntity(string strEntityName,string strValue)&lt;br /&gt;        {&lt;br /&gt;            if (_xmlDocument != null)&lt;br /&gt;            {&lt;br /&gt;                XmlNode objEntityNode = _xmlDocument.DocumentType.Entities.GetNamedItem(strEntityName);&lt;br /&gt;                if (objEntityNode != null)&lt;br /&gt;                {&lt;br /&gt;                    XmlDocumentType _oldXmlDocumentType = _xmlDocument.DocumentType;&lt;br /&gt;                    string _strExistingSubSet = _oldXmlDocumentType.InternalSubset;&lt;br /&gt;                    string _strFromEntity = _strExistingSubSet.Substring(_strExistingSubSet.IndexOf("&lt;!ENTITY " + strEntityName));&lt;br /&gt;                    int intEntityEndIndex = _strFromEntity.IndexOf("&gt;");&lt;br /&gt;                    string _strEntityString = _strFromEntity.Substring(0, intEntityEndIndex + 1);&lt;br /&gt;                    _strExistingSubSet = _strExistingSubSet.Replace(_strEntityString,"&lt;!ENTITY " + strEntityName + " \"" + strValue + "\"&gt;").Trim();&lt;br /&gt;                    XmlDocumentType _newXmlDocumentType = _xmlDocument.CreateDocumentType(_oldXmlDocumentType.Name, _oldXmlDocumentType.PublicId, _oldXmlDocumentType.SystemId, _strExistingSubSet);&lt;br /&gt;                    _xmlDocument.ReplaceChild(_newXmlDocumentType, _oldXmlDocumentType);&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    XmlDocumentType _oldXmlDocumentType = _xmlDocument.DocumentType;&lt;br /&gt;                    XmlDocumentType _newXmlDocumentType = _xmlDocument.CreateDocumentType(_oldXmlDocumentType.Name, _oldXmlDocumentType.PublicId, _oldXmlDocumentType.SystemId, _oldXmlDocumentType.InternalSubset + "\n &lt;!ENTITY " + strEntityName + " \"" + strValue + "\"&gt;");&lt;br /&gt;                    _xmlDocument.ReplaceChild(_newXmlDocumentType, _oldXmlDocumentType);                    &lt;br /&gt;                }&lt;br /&gt;                _xmlDocument.Save(FilePath);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-5919281950268731745?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/5919281950268731745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=5919281950268731745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5919281950268731745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5919281950268731745'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-create-entity-in-xml-file-net.html' title='How to create entity in an Xml file .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8360637557781843696</id><published>2009-02-20T22:24:00.001+05:30</published><updated>2009-02-20T22:27:03.375+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to add launch condition while preparing set up in Visual studio</title><content type='html'>Please refer for preparing set up at &lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2009/02/how-to-prepare-set-up-using-visual.html" target="_blank"&gt;Prog. Finidngs (Set up)&lt;/a&gt;&lt;br /&gt;I am creating separate project in visual studio editor and choosing an &lt;br /&gt;.exe file for which I am willing to prepare set up.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gl51yGLI/AAAAAAAAA0g/kKB_NoWbfwQ/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gl51yGLI/AAAAAAAAA0g/kKB_NoWbfwQ/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304924352875206834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;One of Visual studio configuration properties help to check whether the client machine (which is about to install this .MSI file) has required installations or &lt;br /&gt;Prerequisites software’s to support current installing application.&lt;br /&gt;For example for the set up file which I am preparing now when it gets installed, the machine should have abc.exe file in alphabets folder of Program files.&lt;br /&gt;This is called as launch condition.&lt;br /&gt;I have clicked on the set up project and clicked on “Launch Condition Editor”.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZ7gl1wgoEI/AAAAAAAAA0o/1tLr2jqVe4Y/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 170px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZ7gl1wgoEI/AAAAAAAAA0o/1tLr2jqVe4Y/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304924351779348546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I am adding my launch condition as said before.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gl6pKpaI/AAAAAAAAA0w/15Bqwpyw5PQ/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 156px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gl6pKpaI/AAAAAAAAA0w/15Bqwpyw5PQ/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304924353090725282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZ7gmFcIX7I/AAAAAAAAA04/mt9VEzbKAu8/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZ7gmFcIX7I/AAAAAAAAA04/mt9VEzbKAu8/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304924355988840370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7gmPwOocI/AAAAAAAAA1A/CKu60jkf9Yc/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7gmPwOocI/AAAAAAAAA1A/CKu60jkf9Yc/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304924358757491138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now I am building my solution and installing the set up file created in my set up project folder.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gpruL5VI/AAAAAAAAA1I/SYZugHw7dhk/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gpruL5VI/AAAAAAAAA1I/SYZugHw7dhk/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304924417804723538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;As soon as I click on the set up file created I am getting a message box and not able to install the set up.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gpqbXJuI/AAAAAAAAA1Q/zBcYYIn4x14/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 114px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gpqbXJuI/AAAAAAAAA1Q/zBcYYIn4x14/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304924417457333986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8360637557781843696?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8360637557781843696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8360637557781843696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8360637557781843696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8360637557781843696'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-add-launch-condition-while.html' title='How to add launch condition while preparing set up in Visual studio'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SZ7gl51yGLI/AAAAAAAAA0g/kKB_NoWbfwQ/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-5918698232026169373</id><published>2009-02-20T22:07:00.001+05:30</published><updated>2009-02-20T22:10:13.394+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to prepare set up using Visual studio</title><content type='html'>Visual studio configuration options helps to create a set up or .MSI file very easily.&lt;br /&gt;We should create a separate project saying set up project as below template.&lt;br /&gt;When we try to create a set up, we should right click on the solution file in Visual studio editor.&lt;br /&gt;Using Visual studio we can browse set of files (.Exe’s or .Dll’s etc…) which support for an application to be runned.&lt;br /&gt;I am considering a sample project which has been created for demo.&lt;br /&gt;Note:- Before creating a set up project be sure the application for which you are willing to prepare must be builded and that too in release mode.&lt;br /&gt;&lt;br /&gt;1) So now I am right clicking on my solution file and saying “Add new Project”&lt;br /&gt;Then a dialog appears to select type and name of new project.&lt;br /&gt;I am selecting “Set up project” because my current project for which I am preparing set up is windows application.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7caMuRS5I/AAAAAAAAAzI/j67i5ijBYlQ/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7caMuRS5I/AAAAAAAAAzI/j67i5ijBYlQ/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919753739029394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;2) After giving project name (Setup1) and clicking on Ok&lt;br /&gt;I can see the windows splitted with 3 options in UI.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7caAKm29I/AAAAAAAAAzQ/r0h114oAiSs/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 166px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7caAKm29I/AAAAAAAAAzQ/r0h114oAiSs/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919750368222162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;3) Now I am right clicking on each 3 options and setting required options that are to be done after installing this set up file.&lt;br /&gt;I have chosen an .Exe file I have&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZ7caBe7wCI/AAAAAAAAAzY/fSJUDfo6UHs/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 78px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZ7caBe7wCI/AAAAAAAAAzY/fSJUDfo6UHs/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919750721912866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Setting an option to create shortcut on desktop while installing this set up file&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7caQ8dSkI/AAAAAAAAAzg/lFElbf7ksyI/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 113px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7caQ8dSkI/AAAAAAAAAzg/lFElbf7ksyI/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919754872277570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Setting an option to create shortcut on programs menu while installing this set up file&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZ7cgjMeOzI/AAAAAAAAAzw/Bsb2kHU_vTI/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZ7cgjMeOzI/AAAAAAAAAzw/Bsb2kHU_vTI/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919862850501426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Note:- You can also find many set up properties by looking into properties window of “Application folder”, “Set up” project etc…&lt;br /&gt;4) Now I am building my entire solution in “release” mode.&lt;br /&gt;5) After building successfully I found the set up files (.exe and .msi) at the set up project folder.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZ7cav39dUI/AAAAAAAAAzo/KjKI-iYCv-A/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 110px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZ7cav39dUI/AAAAAAAAAzo/KjKI-iYCv-A/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919763174913346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;6) I am installing this set up file now.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZ7cgl2OQDI/AAAAAAAAAz4/elhgYeIKeTU/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 259px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZ7cgl2OQDI/AAAAAAAAAz4/elhgYeIKeTU/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919863562485810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I have done with my installation setting folder where do I need to create.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7cg_VKxYI/AAAAAAAAA0A/zP2eJPMi5mU/s1600-h/8.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 259px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZ7cg_VKxYI/AAAAAAAAA0A/zP2eJPMi5mU/s320/8.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919870403167618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I can find short cut created on my desk top&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7cgz5LmjI/AAAAAAAAA0I/7sjRirTYtKA/s1600-h/9.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7cgz5LmjI/AAAAAAAAA0I/7sjRirTYtKA/s320/9.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919867332991538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I can find short cut created in programs menu&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7chImCKFI/AAAAAAAAA0Q/FPdE5WW2f3c/s1600-h/10.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7chImCKFI/AAAAAAAAA0Q/FPdE5WW2f3c/s320/10.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919872889825362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;After clicking on the shot icon, I can find my windows form for which I have prepared set up.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7cndAh9kI/AAAAAAAAA0Y/3AnEmEYeOz4/s1600-h/11.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7cndAh9kI/AAAAAAAAA0Y/3AnEmEYeOz4/s320/11.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304919981448885826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-5918698232026169373?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/5918698232026169373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=5918698232026169373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5918698232026169373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5918698232026169373'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-prepare-set-up-using-visual.html' title='How to prepare set up using Visual studio'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SZ7caMuRS5I/AAAAAAAAAzI/j67i5ijBYlQ/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2754343553610978690</id><published>2009-02-20T21:41:00.001+05:30</published><updated>2009-02-20T21:42:34.560+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Phone number formatting using javascript</title><content type='html'>Web sites which do give option for phone number should follow an universal format of arranging text boxes in an order like country code – STD – Line number.&lt;br /&gt;&lt;br /&gt;I would like to create a html page that has 3 text boxes prompting for Country code, STD and Line number.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7WMT8h2QI/AAAAAAAAAy4/I3aUCU4JnZ4/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 126px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7WMT8h2QI/AAAAAAAAAy4/I3aUCU4JnZ4/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304912918089947394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;I am using 2 javascript functions, one of which is called on key press event of each text box (to validate character typed in by user is numeric) and the other function is to automatically set the focus to next text box when current text box value reaches maximum length.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Demo&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function KyP(obj1)&lt;br /&gt;    {&lt;br /&gt;    var vl=String.fromCharCode(event.keyCode);&lt;br /&gt; if(!IsNumber(vl))&lt;br /&gt;    return false;&lt;br /&gt;    return true;&lt;br /&gt;    }&lt;br /&gt;    function IsNumber(argVal)&lt;br /&gt;    {&lt;br /&gt;      var nmr='0123456789';&lt;br /&gt;       for(var i=0;i&amp;lt;argVal.length;i++)&lt;br /&gt;         {&lt;br /&gt;         if(nmr.indexOf(argVal.charAt(i))==-1)&lt;br /&gt;         return false;&lt;br /&gt;         }&lt;br /&gt;        return true;&lt;br /&gt;        }&lt;br /&gt;        function KyUp(obj1,obj2)&lt;br /&gt;        {&lt;br /&gt;        &lt;br /&gt;        if(obj1.maxLength==obj1.value.length)&lt;br /&gt;          {&lt;br /&gt;            if(obj2==null)&lt;br /&gt;            {&lt;br /&gt;            alert('Thank you');&lt;br /&gt;            return;&lt;br /&gt;            }&lt;br /&gt;            obj2.focus();&lt;br /&gt;        }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan="5"&amp;gt;Please enter your land line number&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Country code&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;STD&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Line number&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="txt1" maxlength="4" onkeypress="return KyP(this);" onkeyup="KyUp(this,document.getElementById('txt2'));"/&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="txt2" maxlength="2" onkeypress="return KyP(this);" onkeyup="KyUp(this,document.getElementById('txt3'));"/&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="txt3" maxlength="8" onkeypress="return KyP(this);" onkeyup="KyUp(this,null);"/&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7WMkG4rtI/AAAAAAAAAzA/gCWOtJ2yttI/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 127px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZ7WMkG4rtI/AAAAAAAAAzA/gCWOtJ2yttI/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5304912922428354258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2754343553610978690?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2754343553610978690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2754343553610978690' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2754343553610978690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2754343553610978690'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/phone-number-formatting-using.html' title='Phone number formatting using javascript'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SZ7WMT8h2QI/AAAAAAAAAy4/I3aUCU4JnZ4/s72-c/1.GIF' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8596579312800933677</id><published>2009-02-14T20:49:00.001+05:30</published><updated>2009-02-14T20:50:35.449+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to move images in a html page relatively?</title><content type='html'>Html image elements have style property in which we can set position of the image as relative.&lt;br /&gt;If we say that the position of an image is ‘relative’, upon setting left value for that image it calculates the left value by considering the given value as relative from the current left.&lt;br /&gt;Say, If current Left of the image is at X, then by saying now Image.LEFT=Z then it calculates an exact Left as X+Z as we said the position of the image is relative.&lt;br /&gt;Where as if we say position as ‘absolute’, the given value Z for left will be the same value when image is placed in browser at same Z point.&lt;br /&gt;&lt;br /&gt;I would to share my Html page in which I am reading images available in the current browser or document , there after setting there position as ‘relative’ and then moving those images in rectangular using timer.&lt;br /&gt;Html page:&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;    &lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;center&amp;gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;img src="Images/2.gif" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src="Images/3.gif" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src="Images/4.gif" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src="Images/5.gif" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src="Images/6.gif" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src="Images/contract.gif"/&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/center&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;var a=document.images;&lt;br /&gt;function strt()&lt;br /&gt;{&lt;br /&gt; for(i=0; i&amp;lt;a.length; i++)&lt;br /&gt; {&lt;br /&gt; a[i].style.position='relative';&lt;br /&gt; }&lt;br /&gt; disp();&lt;br /&gt;}&lt;br /&gt;  var indxShft=50;var fct=50;var dir=1; &lt;br /&gt;  var tmr;&lt;br /&gt;  function disp()&lt;br /&gt;  {&lt;br /&gt;  for(i=0; i&amp;lt;a.length; i++)&lt;br /&gt;  {&lt;br /&gt;  if(dir%2==0)&lt;br /&gt;   a[i].style.top=indxShft;&lt;br /&gt;   else&lt;br /&gt;    a[i].style.left=indxShft;&lt;br /&gt;  }&lt;br /&gt;    dir++;&lt;br /&gt;    if(dir&amp;gt;4)&lt;br /&gt;     dir=1;&lt;br /&gt;     if(dir&amp;lt;=2)&lt;br /&gt;     indxShft=fct;&lt;br /&gt;     else&lt;br /&gt;      indxShft=(-1 * fct);&lt;br /&gt;  tmr= setTimeout('disp();',100);  &lt;br /&gt;  }&lt;br /&gt;  strt();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;Or&lt;br /&gt;&lt;br /&gt;You can just copy the below and paste in your address bar&lt;br /&gt;&lt;b&gt;&lt;br /&gt;javascript:a=document.images; for(i=0; i&amp;lt;a.length; i++){a[i].style.position='relative'}; indxShft=50;fct=50;dir=1; setInterval('for(i=0; i&amp;lt;a.length; i++){if(dir%2==0) a[i].style.top=indxShft;else a[i].style.left=indxShft};dir++;if(dir&amp;gt;4) dir=1;if(dir&amp;lt;=2)indxShft=fct;else indxShft=(-1 * fct); void(0)',100); void(0)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I have pasted the above in my address bar while opening google.&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/SZbhFAwJobI/AAAAAAAAAv8/72v23hHkMSo/s1600-h/2.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZbhFAwJobI/AAAAAAAAAv8/72v23hHkMSo/s320/2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5302673087492891058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SZbhFJ3AiDI/AAAAAAAAAv0/H3rhqv3W0Ds/s1600-h/1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZbhFJ3AiDI/AAAAAAAAAv0/H3rhqv3W0Ds/s320/1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5302673089937573938" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8596579312800933677?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8596579312800933677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8596579312800933677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8596579312800933677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8596579312800933677'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-move-images-in-html-page_14.html' title='How to move images in a html page relatively?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SZbhFAwJobI/AAAAAAAAAv8/72v23hHkMSo/s72-c/2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-1575402154003457180</id><published>2009-02-13T20:02:00.001+05:30</published><updated>2009-02-13T20:05:07.503+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Menu Slider using Javascript.</title><content type='html'>We can find many web sites which do menu’s hide and provide an option for viewers to click on a button to open menu list.&lt;br /&gt;That too the menu list moves from Top to bottom or Left to right. Again when user clicks on hide button the menu list moves in opposite direction.&lt;br /&gt;I would like to share my java script code that does this stuff.&lt;br /&gt;Ex:-&lt;br /&gt;I am creating a sample html page whose content is to display menu, 2 buttons (Slide in and Slide out). &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZWEpSYEfhI/AAAAAAAAAvM/N6jwoPV-xMY/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 215px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZWEpSYEfhI/AAAAAAAAAvM/N6jwoPV-xMY/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302289981140925970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Output:&lt;br /&gt;&lt;b&gt;Clicking on slide out button&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZWEpSDFTwI/AAAAAAAAAvU/JMM3XAs8Nzk/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 310px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZWEpSDFTwI/AAAAAAAAAvU/JMM3XAs8Nzk/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302289981052899074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZWEpeAXgFI/AAAAAAAAAvc/vPVGcq3PHPk/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 283px; height: 320px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZWEpeAXgFI/AAAAAAAAAvc/vPVGcq3PHPk/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302289984262733906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Clicking on slide in button&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZWEpjWGp2I/AAAAAAAAAvk/RryUfGlTymc/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 275px; height: 320px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZWEpjWGp2I/AAAAAAAAAvk/RryUfGlTymc/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302289985696081762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Slide is closed&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZWEpuaf1RI/AAAAAAAAAvs/2hr2tGVl5_I/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 280px; height: 320px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZWEpuaf1RI/AAAAAAAAAvs/2hr2tGVl5_I/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302289988667299090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-1575402154003457180?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/1575402154003457180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=1575402154003457180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1575402154003457180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1575402154003457180'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/menu-slider-using-javascript.html' title='Menu Slider using Javascript.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SZWEpSYEfhI/AAAAAAAAAvM/N6jwoPV-xMY/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2685453142014796799</id><published>2009-02-13T16:13:00.001+05:30</published><updated>2009-02-13T16:14:45.079+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle function that returns columns of a table in table format.</title><content type='html'>In this case it is not just to return the columns in a table but they should be returned in a table format.&lt;br /&gt;So we should crate a user defined type.&lt;br /&gt;To know about this in brief check at&lt;br /&gt;&lt;a  href="http://programmerfindings.blogspot.com/2009/01/oracle-function-to-return-comma_30.html" target="_blank"&gt;Oracle Type in Prog. findings&lt;/a&gt;&lt;br /&gt;I am creating a type called “tbl_columns”.&lt;br /&gt;create type tbl_Columns as table of varchar2(255)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZVO6PkJebI/AAAAAAAAAus/3g50sz2SD5s/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 37px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZVO6PkJebI/AAAAAAAAAus/3g50sz2SD5s/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302230898816154034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;My oracle function that returns the columns in given table as table format is&lt;br /&gt;&lt;br /&gt;--Function expecting table name as input parameter&lt;br /&gt;CREATE OR REPLACE FUNCTION fun_columns(argTableName IN VARCHAR)&lt;br /&gt;--setting return type, such that returning the pipe lined rows&lt;br /&gt;RETURN tbl_columns pipelined &lt;br /&gt;IS&lt;br /&gt;--Initialising cursor to get column names of a given table&lt;br /&gt;CURSOR cur_columns IS SELECT column_name FROM user_tab_cols WHERE table_name=UPPER(argTableName);&lt;br /&gt;tmpRec user_tab_cols.column_name%TYPE;&lt;br /&gt;BEGIN&lt;br /&gt;--opening cursor to read values from the select query&lt;br /&gt;OPEN cur_columns;&lt;br /&gt;LOOP &lt;br /&gt;FETCH cur_columns INTO tmpRec;&lt;br /&gt;EXIT WHEN cur_columns%NOTFOUND;&lt;br /&gt;--piping each value as row in the defined type table tbl_columns&lt;br /&gt; pipe ROW(tmpRec);&lt;br /&gt;END LOOP;&lt;br /&gt;END;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZVO6b8yIWI/AAAAAAAAAu0/iqudk3V5TFQ/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 131px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZVO6b8yIWI/AAAAAAAAAu0/iqudk3V5TFQ/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302230902140707170" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I would like to create a table called “MyTable” to test with this oracle function as&lt;br /&gt;CREATE TABLE MyTable&lt;br /&gt;(&lt;br /&gt;MyColumn1 NUMBER,&lt;br /&gt;MyColumn2 FLOAT,&lt;br /&gt;MyColumn3 DATE,&lt;br /&gt;MyColumn4 VARCHAR2(100),&lt;br /&gt;MyColumn5 CHAR&lt;br /&gt;)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZVO6WVPNAI/AAAAAAAAAu8/ye_h4LrwSIE/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 222px; height: 159px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZVO6WVPNAI/AAAAAAAAAu8/ye_h4LrwSIE/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302230900632663042" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;After compiling the oracle function, I am using the below select query to get the coulns available in this table (MyTable).&lt;br /&gt;SELECT * FROM (TABLE(fun_columns('MyTABle')));&lt;br /&gt;Output:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZVO6ncU6AI/AAAAAAAAAvE/jrAdx9BiLAE/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZVO6ncU6AI/AAAAAAAAAvE/jrAdx9BiLAE/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5302230905225799682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2685453142014796799?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2685453142014796799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2685453142014796799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2685453142014796799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2685453142014796799'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/oracle-function-that-returns-columns-of.html' title='Oracle function that returns columns of a table in table format.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SZVO6PkJebI/AAAAAAAAAus/3g50sz2SD5s/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2607474558868366483</id><published>2009-02-11T20:02:00.001+05:30</published><updated>2009-02-11T20:06:01.585+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Confirmation before deleting a record in .NET.</title><content type='html'>Delete buttons in user interface are very danger to perform delete action when clicked with out re confirming from user. This is because user may accidentally or with out knowledge may click on the delete button, which may lead to loss of imperative information.&lt;br /&gt;We can handle this with the help of “confirm” box through JavaScript.&lt;br /&gt;When an asp control like button or link button is clicked, obviously the page gets post backed which then calls the function that should be through onclick event of the button.&lt;br /&gt;&lt;br /&gt;Asp control like button or link button have a property member saying “Attributes”. This property helps to add attributes for that component that are rendered on client side browser when the page is loaded.&lt;br /&gt;There fore we can add “onclick” as an attribute and handle a kind of confirmation box before deleting a record.&lt;br /&gt;Example:-&lt;br /&gt;My page is as below,&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZLhpY1GawI/AAAAAAAAAt8/z6Dq6bSgh9s/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZLhpY1GawI/AAAAAAAAAt8/z6Dq6bSgh9s/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301547812524550914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Code behind page&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;    &lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;public partial class Delete : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    protected void btnDelete_Click(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        //Lines of code for deleting a record&lt;br /&gt;        lblMessage.Text = "Deleted succesfully";&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhpugMxQI/AAAAAAAAAuE/O8vkFGVPYzU/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhpugMxQI/AAAAAAAAAuE/O8vkFGVPYzU/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301547818342466818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;We can find that the code behind page “btnDelete_Click” function is called upon clicking the “Delete” button. After the record is deleted we display message as successfully deleted in the label.&lt;br /&gt;In this case as soon user clicks on the delete button (knowingly or unknowingly), the page gets post backed and does the delete functionality written in the “btnDelete_Click” function written in code behind page.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhptl0z9I/AAAAAAAAAuM/cRV6ZpWrHOc/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 194px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhptl0z9I/AAAAAAAAAuM/cRV6ZpWrHOc/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301547818097627090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now&lt;br /&gt;My code behind page&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;    &lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;public partial class Delete : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        //Adding on click javascript attribute to handle user confirmation before&lt;br /&gt;        //deleting the record&lt;br /&gt;        btnDelete.Attributes.Add("onclick", "return confirm('Are you sure to delete?');");&lt;br /&gt;    }&lt;br /&gt;    protected void btnDelete_Click(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        //Lines of code for deleting a record&lt;br /&gt;        lblMessage.Text = "Deleted succesfully";&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZLhpkhd83I/AAAAAAAAAuU/eqFiABp0FPA/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZLhpkhd83I/AAAAAAAAAuU/eqFiABp0FPA/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301547815663432562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;If I run the page now, after clicking on “delete” button&lt;br /&gt;&lt;br /&gt; &lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhpu3UsmI/AAAAAAAAAuc/XlIo_7Ec6rY/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 297px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhpu3UsmI/AAAAAAAAAuc/XlIo_7Ec6rY/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301547818439455330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;If I click ok then&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhptl0z9I/AAAAAAAAAuM/cRV6ZpWrHOc/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 194px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZLhptl0z9I/AAAAAAAAAuM/cRV6ZpWrHOc/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301547818097627090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;If I click on “cancel” button, then nothing happens or page does not get post backed. &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZLhs_JcuuI/AAAAAAAAAuk/5hjD9L5cN9U/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 210px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZLhs_JcuuI/AAAAAAAAAuk/5hjD9L5cN9U/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301547874350054114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2607474558868366483?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2607474558868366483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2607474558868366483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2607474558868366483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2607474558868366483'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/confirmation-before-deleting-record-in.html' title='Confirmation before deleting a record in .NET.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SZLhpY1GawI/AAAAAAAAAt8/z6Dq6bSgh9s/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8318225419841106343</id><published>2009-02-10T14:40:00.001+05:30</published><updated>2009-02-10T15:24:00.062+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>What are recursive functions?</title><content type='html'>We are aware about how functions are defined in C or C++ or Java or.Net.&lt;br /&gt;In which ever case it is, in a programming language we start our process by defining a method or function.&lt;br /&gt;We say Main method is the first method that gets called to start executing an application.&lt;br /&gt;1) Function can expect parameters which is not mandatory.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZBp78pmZeI/AAAAAAAAAsU/_Mneu2sB56c/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 299px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZBp78pmZeI/AAAAAAAAAsU/_Mneu2sB56c/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300853240028882402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;2) When a function is called it is loaded then into memory with given parameters as well.&lt;br /&gt;3) Function may or may not return a value&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZBp8EWvhkI/AAAAAAAAAsc/8IiH0bfRzX8/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 195px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZBp8EWvhkI/AAAAAAAAAsc/8IiH0bfRzX8/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300853242097272386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;4) A function can call an another function or by itself.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZFOqj9ZC9I/AAAAAAAAAtc/VRS8bb8Agrs/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 202px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZFOqj9ZC9I/AAAAAAAAAtc/VRS8bb8Agrs/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5301104729505991634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;5) Recursive function can be defined as a function calling by it self.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZBp8ay6MHI/AAAAAAAAAss/5Q4FzOmzL6g/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 268px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZBp8ay6MHI/AAAAAAAAAss/5Q4FzOmzL6g/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300853248120991858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Memory structure:-&lt;br /&gt;Let us consider a simple function as &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZBp8n0mcuI/AAAAAAAAAs0/3C2WpdDEFlk/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 130px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZBp8n0mcuI/AAAAAAAAAs0/3C2WpdDEFlk/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300853251617747682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;If this is a recursive function (say it calls for it self 3 times) then&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZBqYe2oddI/AAAAAAAAAtM/GvUkW5sYTac/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 62px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZBqYe2oddI/AAAAAAAAAtM/GvUkW5sYTac/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300853730246686162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Example:-&lt;br /&gt;&lt;br /&gt;I have created a .NET windows application for calculating the factorial of a given number.&lt;br /&gt;If input is 5 then output should be 5*4*3*2*1&lt;br /&gt;Code:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;&lt;br /&gt;namespace Sample&lt;br /&gt;{&lt;br /&gt;    public partial class frmFactorial : Form&lt;br /&gt;    {&lt;br /&gt;        public frmFactorial()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void btnFactorial_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //Checking given value is numeric or not&lt;br /&gt;                if (!IsNumber(txtFact.Text))&lt;br /&gt;                    throw new Exception("Enter numeric value for A");&lt;br /&gt;                //calling factorial function&lt;br /&gt;                MessageBox.Show(Factorial(Convert.ToInt32(txtFact.Text)).ToString());&lt;br /&gt;             &lt;br /&gt;            }&lt;br /&gt;            catch (Exception exp)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(exp.Message);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;     &lt;b&gt;   private int Factorial(int argVal)&lt;br /&gt;        {&lt;br /&gt;            //If input value is greater then one then once call once again &lt;br /&gt;            //by multiplying input value with the return value of&lt;br /&gt;            //factorial function by sending the value after deducting 1&lt;br /&gt;            //from the given input value&lt;br /&gt;            if (argVal &gt; 1)&lt;br /&gt;            {&lt;br /&gt;                argVal = argVal * Factorial(argVal - 1);&lt;br /&gt;            }&lt;br /&gt;            //returning the final value, which is calculated after multiplying&lt;br /&gt;            //recursively&lt;br /&gt;            return argVal;&lt;br /&gt;        }&lt;/b&gt;&lt;br /&gt;        private bool IsNumber(string argValue)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //checking if the given  value is numeric&lt;br /&gt;                Convert.ToInt32(argValue);&lt;br /&gt;                return true;&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZBqZIwNAhI/AAAAAAAAAtU/lh1PeU2Pt2o/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 282px; height: 204px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZBqZIwNAhI/AAAAAAAAAtU/lh1PeU2Pt2o/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300853741494010386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8318225419841106343?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8318225419841106343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8318225419841106343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8318225419841106343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8318225419841106343'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/what-are-recursive-functions_10.html' title='What are recursive functions?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SZBp78pmZeI/AAAAAAAAAsU/_Mneu2sB56c/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-5879969633259036538</id><published>2009-02-09T21:55:00.001+05:30</published><updated>2009-02-09T21:59:47.877+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle - .NET'/><title type='text'>How to access an Oracle function in .NET?</title><content type='html'>Oracle function comprises of a set of parameters (Input or Output) and body which contains the actually logic written in it. Return type of the function is defined as well.&lt;br /&gt;Finally the oracle function is expected to return a value.&lt;br /&gt;Oracle stored function:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZBZGlOMosI/AAAAAAAAArk/OuiJLvzUNYY/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 235px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZBZGlOMosI/AAAAAAAAArk/OuiJLvzUNYY/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300834731020821186" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So for calling an oracle function in .NET class,&lt;br /&gt;1) we can write a simple sql query that calls the oracle function and returns the value.&lt;br /&gt;I would like to create a function that has 2 parameters.&lt;br /&gt;Example:-&lt;br /&gt;&lt;b&gt; Step 1: &lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;Number&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;Number&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;So function returns value based upon given Input parameters (“A”, “B”) in function body.&lt;br /&gt;Say suppose, I would like to create this function to find sum of given “A” and “B” then,&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION Fun_Sum&lt;br /&gt;(&lt;br /&gt; A IN NUMBER,&lt;br /&gt; B IN NUMBER&lt;br /&gt; )&lt;br /&gt; RETURN NUMBER&lt;br /&gt;IS&lt;br /&gt;c NUMBER;&lt;br /&gt; BEGIN&lt;br /&gt; --Default value of C is Zero&lt;br /&gt; c:=0;&lt;br /&gt; --If A and B are not null then&lt;br /&gt; IF(A IS NOT NULL AND B IS NOT NULL) THEN&lt;br /&gt; --Finding sum of A and B, assigning it to C&lt;br /&gt; C:=A+B;&lt;br /&gt; END IF;&lt;br /&gt;--Return value of C&lt;br /&gt; RETURN C;&lt;br /&gt; END;&lt;br /&gt;/&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZBZGmuGMNI/AAAAAAAAArs/06pWCxjrEL0/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 279px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZBZGmuGMNI/AAAAAAAAArs/06pWCxjrEL0/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300834731423051986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Step 2:&lt;/b&gt;&lt;br /&gt;Form that has been designed in C#.NET to accept 2 input parameters from user and display the sum of those 2 given parameters.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZBLcpVKtdI/AAAAAAAAAq8/DAGd23AoSJI/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 302px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZBLcpVKtdI/AAAAAAAAAq8/DAGd23AoSJI/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819716918130130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Code behind page&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using Oracle.DataAccess.Client;&lt;br /&gt;namespace Sample&lt;br /&gt;{&lt;br /&gt;    public partial class frm : Form&lt;br /&gt;    {&lt;br /&gt;        public frm()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;        string strConnectionString = "Data Source=Source1; User Id=User1; Password=Fg$5gs;";&lt;br /&gt;        string strSelectQuery = "select Fun_Sum({0},{1}) as C from dual";&lt;br /&gt;        private void btnSum_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //Checking given values are numeric or not&lt;br /&gt;                if (!IsNumber(txtA.Text))&lt;br /&gt;                    throw new Exception("Enter numeric value for A");&lt;br /&gt;                if (!IsNumber(txtB.Text))&lt;br /&gt;                    throw new Exception("Enter numeric value for B");&lt;br /&gt;                //Calling a function that returns the sum of the given 2 numbers&lt;br /&gt;                txtC.Text = GetSumOf(Convert.ToInt32(txtA.Text), Convert.ToInt32(txtB.Text)).ToString();&lt;br /&gt;            }&lt;br /&gt;            catch (Exception exp)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(exp.Message);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private int GetSumOf(int A, int B)&lt;br /&gt;        {&lt;br /&gt;            //creating oracle connection object which accepts connection&lt;br /&gt;            //string parameter&lt;br /&gt;            OracleConnection con = new OracleConnection(strConnectionString);&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //creating oracle command object whose command text is&lt;br /&gt;                //name of the stored procedure that has been created to fnd&lt;br /&gt;                //sum of 2 input numeric parameters&lt;br /&gt;                OracleCommand cmd = new OracleCommand(String.Format(strSelectQuery, A, B));&lt;br /&gt;                //opening the connection the created oracle connection object&lt;br /&gt;                con.Open();&lt;br /&gt;                //assigning the connection object to the oracle command&lt;br /&gt;                cmd.Connection = con;&lt;br /&gt;                //setting the type of the oracle command to text&lt;br /&gt;                cmd.CommandType = CommandType.Text;&lt;br /&gt;                //executing the oracle command object, which executes the body of the  &lt;br /&gt;                //function considering the given input parameter values&lt;br /&gt;                return Convert.ToInt32(cmd.ExecuteScalar());&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                throw;&lt;br /&gt;            }&lt;br /&gt;            finally&lt;br /&gt;            {&lt;br /&gt;                //closing the oracle connection&lt;br /&gt;                con.Close();&lt;br /&gt;            }           &lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        private bool IsNumber(string argValue)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //checking if the given  value is numeric&lt;br /&gt;                Convert.ToInt32(argValue);&lt;br /&gt;                return true;&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZBZGs9q5JI/AAAAAAAAAr0/TgVlaNZEag8/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZBZGs9q5JI/AAAAAAAAAr0/TgVlaNZEag8/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300834733098984594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZBZGo2tE3I/AAAAAAAAAr8/KkJCzNM5qms/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZBZGo2tE3I/AAAAAAAAAr8/KkJCzNM5qms/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300834731996025714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZBZG65ci0I/AAAAAAAAAsE/RPjQFA2qgsA/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 196px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZBZG65ci0I/AAAAAAAAAsE/RPjQFA2qgsA/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300834736839363394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Output:-&lt;br /&gt;When user clicks on the “Sum” button after giving required “A” and “B” values.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZBZgh9YBdI/AAAAAAAAAsM/zaYyfU11FDU/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 302px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZBZgh9YBdI/AAAAAAAAAsM/zaYyfU11FDU/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300835176821556690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-5879969633259036538?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/5879969633259036538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=5879969633259036538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5879969633259036538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5879969633259036538'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-access-oracle-function-in-net.html' title='How to access an Oracle function in .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SZBZGlOMosI/AAAAAAAAArk/OuiJLvzUNYY/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8565516914731185434</id><published>2009-02-09T20:57:00.001+05:30</published><updated>2009-02-09T20:59:37.753+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle - .NET'/><title type='text'>How to access an Oracle stored procedure in .NET?</title><content type='html'>Oracle procedure comprises of a set of parameters (Input or Output) and body which contains the actually logic written in it.&lt;br /&gt;Oracle stored procedure:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZBLcb8RQqI/AAAAAAAAAqs/2wVU3G0cfXQ/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZBLcb8RQqI/AAAAAAAAAqs/2wVU3G0cfXQ/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819713324040866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So for a calling an oracle procedure in .NET class, we need to mention&lt;br /&gt;1) Procedure name.&lt;br /&gt;2) List of parameters with names, data type, type (i/p, o/p, i/o/p), length, value.&lt;br /&gt;I would like to create a stored procedure that has 3 parameters.&lt;br /&gt;Example:-&lt;br /&gt;&lt;b&gt; Step 1: &lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;Number&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;Number&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Output&lt;/td&gt;&lt;td&gt;Number&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;So output parameter “C” is updated based upon given Input parameters (“A”, “B”) in procedure body.&lt;br /&gt;Say suppose I would like to create this procedure to find sum of given “A” and “B” then,&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;CREATE OR REPLACE PROCEDURE PRC_SUM&lt;br /&gt;(&lt;br /&gt; A IN NUMBER,&lt;br /&gt; B IN NUMBER,&lt;br /&gt; C OUT NUMBER&lt;br /&gt; )&lt;br /&gt; AS&lt;br /&gt; BEGIN&lt;br /&gt; --Default value of C is Zero&lt;br /&gt; c:=0;&lt;br /&gt; --If A and B are not null then&lt;br /&gt; IF(A IS NOT NULL AND B IS NOT NULL) THEN&lt;br /&gt; --Finding sum of A and B, assigning it to C&lt;br /&gt; C:=A+B;&lt;br /&gt; END IF;&lt;br /&gt; END;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZBLcZcS7VI/AAAAAAAAAq0/-UqiNRCkwr8/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 234px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZBLcZcS7VI/AAAAAAAAAq0/-UqiNRCkwr8/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819712653061458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Step 2:&lt;/b&gt;&lt;br /&gt;Form that has been designed in C#.NET to accept 2 input parameters from user and display the sum of those 2 given parameters.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZBLcpVKtdI/AAAAAAAAAq8/DAGd23AoSJI/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 302px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZBLcpVKtdI/AAAAAAAAAq8/DAGd23AoSJI/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819716918130130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Code behind page&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using Oracle.DataAccess.Client;&lt;br /&gt;namespace Sample&lt;br /&gt;{&lt;br /&gt;    public partial class frm : Form&lt;br /&gt;    {&lt;br /&gt;        public frm()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;        string strConnectionString = "Data Source=Source1; User Id=User1; Password=Fg$5gs;";&lt;br /&gt;        string strPrcName = "PRC_SUM";&lt;br /&gt;        string PARAM_A = "A";&lt;br /&gt;        string PARAM_B = "B";&lt;br /&gt;        string PARAM_C = "C";&lt;br /&gt;        private void btnSum_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //Checking given values are numeric or not&lt;br /&gt;                if (!IsNumber(txtA.Text))&lt;br /&gt;                    throw new Exception("Enter numeric value for A");&lt;br /&gt;                if (!IsNumber(txtB.Text))&lt;br /&gt;                    throw new Exception("Enter numeric value for B");&lt;br /&gt;                //Calling a function that returns the sum of the given 2 numbers&lt;br /&gt;                txtC.Text = GetSumOf(Convert.ToInt32(txtA.Text), Convert.ToInt32(txtB.Text)).ToString();&lt;br /&gt;            }&lt;br /&gt;            catch (Exception exp)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(exp.Message);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private int GetSumOf(int A, int B)&lt;br /&gt;        {&lt;br /&gt;            //creating oracle command object whose command text is&lt;br /&gt;            //name of the stored procedure that has been created to fnd&lt;br /&gt;            //sum of 2 input numeric parameters&lt;br /&gt;            OracleCommand cmd = new OracleCommand(strPrcName);&lt;br /&gt;            //creating oracle connection object which accepts connection&lt;br /&gt;            //string parameter&lt;br /&gt;            OracleConnection con = new OracleConnection(strConnectionString);&lt;br /&gt;            //opening the connection the created oracle connection object&lt;br /&gt;            con.Open();&lt;br /&gt;            //assigning the connection object to the oracle command&lt;br /&gt;            cmd.Connection = con;&lt;br /&gt;            //setting the type of the oracle command to stored procedure&lt;br /&gt;            cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;            //adding the required oracle parameters to the oracle command object&lt;br /&gt;            //based upon the parameters that are defined while creating the procedure&lt;br /&gt;            //also assinging the values to the input parameters&lt;br /&gt;            cmd.Parameters.Add(PARAM_A, OracleDbType.Int32).Value=A;&lt;br /&gt;            cmd.Parameters.Add(PARAM_B, OracleDbType.Int32).Value=B;&lt;br /&gt;            cmd.Parameters.Add(PARAM_C, OracleDbType.Int32,ParameterDirection.Output);&lt;br /&gt;            //executing the oracle command object, which executes the body of the stored &lt;br /&gt;            //procedure considering the given input parameter values&lt;br /&gt;            cmd.ExecuteNonQuery();&lt;br /&gt;            //closing the oracle connection&lt;br /&gt;            con.Close();&lt;br /&gt;            //returning the value of parameter "C", which has been &lt;br /&gt;            //updated in stored procedure&lt;br /&gt;            return Convert.ToInt32(cmd.Parameters[PARAM_C].Value);&lt;br /&gt;        }&lt;br /&gt;        private bool IsNumber(string argValue)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                //checking if the given  value is numeric&lt;br /&gt;                Convert.ToInt32(argValue);&lt;br /&gt;                return true;&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZBLcovD8XI/AAAAAAAAArE/1B7TUisXO6E/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZBLcovD8XI/AAAAAAAAArE/1B7TUisXO6E/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819716758303090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZBLcqDuLrI/AAAAAAAAArM/O2cW-zf6c1c/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 174px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZBLcqDuLrI/AAAAAAAAArM/O2cW-zf6c1c/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819717113392818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZBLiQ1uCrI/AAAAAAAAArU/UNyPdCzLJ88/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 192px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZBLiQ1uCrI/AAAAAAAAArU/UNyPdCzLJ88/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819813422992050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Output:-&lt;br /&gt;When user clicks on the “Sum” button after giving required “A” and “B” values.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZBLiZ0g5KI/AAAAAAAAArc/YNhypB-7ix8/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 302px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZBLiZ0g5KI/AAAAAAAAArc/YNhypB-7ix8/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300819815833855138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8565516914731185434?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8565516914731185434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8565516914731185434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8565516914731185434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8565516914731185434'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-access-oracle-stored-procedure.html' title='How to access an Oracle stored procedure in .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SZBLcb8RQqI/AAAAAAAAAqs/2wVU3G0cfXQ/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-1289393336223653547</id><published>2009-02-09T18:05:00.001+05:30</published><updated>2009-02-09T19:10:46.974+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><title type='text'>Sample web application using Ajax in .NET</title><content type='html'>I would like to give a brief description with steps for creating a very simple web application using Ajax in .NET.&lt;br /&gt;Please refer &lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2009/02/ajax-asynchronous-javascript.html" target="_blank"&gt; Ajax in Prog.Findinmgs&lt;/a&gt; for brief descripton in Ajax,&lt;br /&gt;&lt;b&gt;Step 1:&lt;/b&gt;&lt;br /&gt;Create a .NET project, right click on the solution file and say “Add New website”&lt;br /&gt;Select “ASP.Net Ajax enabled web site “from the template and give some web site name.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjWZ6NL5I/AAAAAAAAAps/L1z3YoD91w0/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjWZ6NL5I/AAAAAAAAAps/L1z3YoD91w0/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300775629234188178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;You can observe after adding this ajax enabled website, “default.aspx” page is added and “asp:sriptmanager” is added in the page.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjWmBnANI/AAAAAAAAAp0/9gajQENkfo4/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjWmBnANI/AAAAAAAAAp0/9gajQENkfo4/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300775632486465746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;This script manager is used to support “Ajax” functionality while sending request and receiving response.&lt;br /&gt;&lt;b&gt;Step 2:&lt;/b&gt;&lt;br /&gt;I would consider the same example explained in &lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2009/02/ajax-asynchronous-javascript.html" target="_blank"&gt; Ajax in Prog.Findinmgs&lt;/a&gt;&lt;br /&gt;My aspx page is designed as &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjWk8LCMI/AAAAAAAAAp8/8_DRgTyqm64/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjWk8LCMI/AAAAAAAAAp8/8_DRgTyqm64/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300775632195225794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Aspx page:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;        &amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server" /&amp;gt;&lt;br /&gt;        &lt;br /&gt;            &amp;lt;div&amp;gt;&lt;br /&gt;             &amp;lt;asp:UpdateProgress ID="updPrgYes" runat="server" AssociatedUpdatePanelID="updYes"&amp;gt;&lt;br /&gt;                                      &amp;lt;ProgressTemplate&amp;gt;&lt;br /&gt;                                      Processing Yesterdays date...&lt;br /&gt;                                      &amp;lt;/ProgressTemplate&amp;gt;&amp;lt;/asp:UpdateProgress&amp;gt;&lt;br /&gt;            &amp;lt;asp:UpdatePanel ID="updYes" runat="server"&amp;gt;&lt;br /&gt;            &amp;lt;ContentTemplate&amp;gt;&lt;br /&gt;    &amp;lt;table&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&amp;lt;input type="button" value="What is Yesterday's date?" id="btnYes" runat="server" &lt;br /&gt;    onserverclick="btnYes_ServerClick"/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&amp;lt;asp:Label ID="lblYes" runat="server"&amp;gt;&amp;lt;/asp:Label&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;/tr&amp;gt;&lt;br /&gt;     &amp;lt;/table&amp;gt;&lt;br /&gt;     &amp;lt;/ContentTemplate&amp;gt;&lt;br /&gt;     &amp;lt;/asp:UpdatePanel&amp;gt;&lt;br /&gt;           &amp;lt;asp:UpdateProgress ID="updPrgTo" runat="server" AssociatedUpdatePanelID="updTo"&amp;gt;&lt;br /&gt;                                      &amp;lt;ProgressTemplate&amp;gt;&lt;br /&gt;                                      Processing Todays date...&lt;br /&gt;                                      &amp;lt;/ProgressTemplate&amp;gt;&amp;lt;/asp:UpdateProgress&amp;gt;&lt;br /&gt;      &amp;lt;asp:UpdatePanel ID="updTo" runat="server"&amp;gt;&lt;br /&gt;            &amp;lt;ContentTemplate&amp;gt;&lt;br /&gt;     &amp;lt;table&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&amp;lt;input type="button" value="What is Today's date?" id="btnTod" runat="server" &lt;br /&gt;    onserverclick="btnTod_ServerClick" /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&lt;br /&gt;   &amp;lt;td&amp;gt;&amp;lt;asp:Label ID="lblTod" runat="server"&amp;gt;&amp;lt;/asp:Label&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;/tr&amp;gt;    &lt;br /&gt;    &amp;lt;/table&amp;gt;&lt;br /&gt;     &amp;lt;/ContentTemplate&amp;gt;&lt;br /&gt;     &amp;lt;/asp:UpdatePanel&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;       &lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Code behind page:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;public partial class _Default : System.Web.UI.Page &lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;    protected void btnYes_ServerClick(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        //Thread has been slept for 3 seconds, so that user&lt;br /&gt;        //can see the processing message for a while before updating the response&lt;br /&gt;        System.Threading.Thread.Sleep(3000);&lt;br /&gt;        //Updating todays date lable with todays date&lt;br /&gt;        lblYes.Text = DateTime.Now.ToString("dd/MM/yyyy");&lt;br /&gt;    }&lt;br /&gt;    protected void btnTod_ServerClick(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        //Thread has been slept for 3 seconds, so that user&lt;br /&gt;        //can see the processing message for a while before updating the response&lt;br /&gt;        System.Threading.Thread.Sleep(3000);&lt;br /&gt;        //Updating yesterdays date lable with yesterdays date&lt;br /&gt;        lblTod.Text = (DateTime.Now.AddDays(-1)).ToString("dd/MM/yyyy");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjXH9yrwI/AAAAAAAAAqE/6WTrACEt3S0/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjXH9yrwI/AAAAAAAAAqE/6WTrACEt3S0/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300775641597259522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Step 3:&lt;/b&gt;&lt;br /&gt;Output:-&lt;br /&gt;When user clicks on “Todays” date button, we can find &lt;br /&gt;1) processing message.&lt;br /&gt;2) Page not getting post backed.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjXPleZ2I/AAAAAAAAAqM/QmWIRCLBxHM/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjXPleZ2I/AAAAAAAAAqM/QmWIRCLBxHM/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300775643642750818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjzDpONZI/AAAAAAAAAqU/Enuz6Pb_pOo/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZAjzDpONZI/AAAAAAAAAqU/Enuz6Pb_pOo/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300776121473578386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;When user clicks on “Yesterdays” date button, we can find &lt;br /&gt;1) Processing message.&lt;br /&gt;2) Page not getting post backed.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjzezoHiI/AAAAAAAAAqc/4h85Ls6L36M/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjzezoHiI/AAAAAAAAAqc/4h85Ls6L36M/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300776128764976674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjzdNQp_I/AAAAAAAAAqk/3qVOel0WTmQ/s1600-h/8.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAjzdNQp_I/AAAAAAAAAqk/3qVOel0WTmQ/s320/8.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300776128335620082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-1289393336223653547?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/1289393336223653547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=1289393336223653547' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1289393336223653547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1289393336223653547'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/sample-web-application-using-ajax-in.html' title='Sample web application using Ajax in .NET'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SZAjWZ6NL5I/AAAAAAAAAps/L1z3YoD91w0/s72-c/1.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-6948066868603079300</id><published>2009-02-09T17:29:00.000+05:30</published><updated>2009-02-09T17:32:13.930+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><title type='text'>Ajax – Asynchronous JavaScript</title><content type='html'>When we have some brief view of a web application, we are pretty sure that there exists a web server which is centralized to send responses for different requests from different clients.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAa1FmZjvI/AAAAAAAAApU/oK_zQ8dVU64/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 180px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAa1FmZjvI/AAAAAAAAApU/oK_zQ8dVU64/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300766260753698546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;We use “http” protocol for handling the communication between client and server.&lt;br /&gt;&lt;br /&gt;Ajax has been introduced in the similar manner to send and receive response to and from web server using http, but the actual benefit of using Ajax adds more in way the request and response is handled.&lt;br /&gt;In traditional way of sending and receiving request and response, if we consider a normal aspx page,&lt;br /&gt;When user clicks on some button in aspx page to get some response, the entire page is reloaded when the response is received.&lt;br /&gt;I mean though the response in deed is not required to refresh the whole page but just to update a part of page (a label control for example available among several controls), it is not really use full to reload the content of each and every control  which are not required.&lt;br /&gt;&lt;br /&gt;Ex:-&lt;br /&gt;I have created an aspx page whose interface look like&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZAa1LJQi9I/AAAAAAAAApc/lSZZn7mqxWQ/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZAa1LJQi9I/AAAAAAAAApc/lSZZn7mqxWQ/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300766262242085842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;When I request for this page,&lt;br /&gt;user clicks on “Yesterdays button”, it is really required to just update the “lblYes” label to display “Yesterdays date” but not required to reload the entire page and update the other 2 components (Today’s date button and Today’s date label), similarly when user clicks on “Today’s date” button.&lt;br /&gt;You can also see the entire page is post backed and reloaded, when user click on any one of these buttons.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SZAa1N1SzKI/AAAAAAAAApk/hf2L1xaYPQA/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SZAa1N1SzKI/AAAAAAAAApk/hf2L1xaYPQA/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300766262963653794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;This is traditional process,&lt;br /&gt;Ajax helps at this kind of instants.&lt;br /&gt;When user clicks on today’s button, we can handle the request and response using Ajax to update only the today’s label instead of reloading the entire page and updating the other 2 components (Yesterday’s date button and Yesterday’s date label) though not required.&lt;/b&gt;&lt;br /&gt;Obviously, there are 2 advantages here&lt;br /&gt;1) User can fell the page is not getting post backed.&lt;br /&gt;2) Since the response is not reloading the entire page but only updating or refreshing a part of page, it does not take much time when compared to reloading the entire page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-6948066868603079300?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/6948066868603079300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=6948066868603079300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6948066868603079300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6948066868603079300'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/ajax-asynchronous-javascript.html' title='Ajax – Asynchronous JavaScript'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SZAa1FmZjvI/AAAAAAAAApU/oK_zQ8dVU64/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-6616689740077383625</id><published>2009-02-09T16:42:00.003+05:30</published><updated>2009-02-09T16:47:58.990+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Checkbox List in .NET.</title><content type='html'>"Check box list" name itself says that it is a list of check boxes.&lt;br /&gt;These lists of check boxes could either be dynamic or static.&lt;br /&gt;&lt;b&gt;Static:&lt;/b&gt;&lt;br /&gt;Static in the sense the list of check boxes are pre defined in the aspx.&lt;br /&gt;Example:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0FP5nHI/AAAAAAAAAos/Tiqd_WTmikI/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0FP5nHI/AAAAAAAAAos/Tiqd_WTmikI/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300754148851555442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;When we run this aspx page, we get the page as&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0duIbMI/AAAAAAAAAo0/frM85G-eUII/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0duIbMI/AAAAAAAAAo0/frM85G-eUII/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300754155420806338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;We can observe the lists of check boxes displayed in the page are because of the predefined check box items in the check box list control.&lt;br /&gt;&lt;b&gt;Dynamic:&lt;/b&gt;&lt;br /&gt;Some times, it may be required to display a list of check boxes which are dynamic.&lt;br /&gt;Example:-&lt;br /&gt;Say, it may be required to populate all the roles available in the database while adding a user.&lt;br /&gt;So we can display these lists of roles as check boxes which are dynamic.&lt;br /&gt;In this case we read all the role names available in database and bind those as data source to this check box list.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZAP0QFWYLI/AAAAAAAAAo8/DZOhshlJOrw/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZAP0QFWYLI/AAAAAAAAAo8/DZOhshlJOrw/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300754151760093362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;You can observe there are no predefined check boxes in the check box list.&lt;br /&gt;This page expects a query string as “Items” with list list of roles or values seperated by comma’s&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0g2ndPI/AAAAAAAAApE/45CHYbbmgBw/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0g2ndPI/AAAAAAAAApE/45CHYbbmgBw/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300754156261700850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;br /&gt;If we request for this page as&lt;br /&gt;&lt;b&gt;/CheckBoxList.aspx?Items=Admin,Viewer,Editor&lt;br /&gt;Then it should display the page with 3 check boxes for Admin, Viewer and Editor roles.&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0sRHFTI/AAAAAAAAApM/dsQ9zKs3lx8/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0sRHFTI/AAAAAAAAApM/dsQ9zKs3lx8/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300754159325615410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-6616689740077383625?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/6616689740077383625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=6616689740077383625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6616689740077383625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6616689740077383625'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/checkbox-list-in-net.html' title='Checkbox List in .NET.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SZAP0FP5nHI/AAAAAAAAAos/Tiqd_WTmikI/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3264422938370435099</id><published>2009-02-09T16:24:00.000+05:30</published><updated>2009-02-09T16:25:30.423+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESRI'/><title type='text'>How to generate GML string for featrues available in Feature Layer</title><content type='html'>GML stands for Geographic Markup Language.&lt;br /&gt;GML is very similar to XML, where we describe the geo position coordinates, type, etc in a standard xml format called as GML.&lt;br /&gt;For this we can find an interface called “IGMLConversion” in “ESRI.ArcGIS.TrackingAnalyst” package.&lt;br /&gt;&lt;br /&gt;I have written a tool which look like&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZALf2QwXFI/AAAAAAAAAoM/HJACCIBHmRo/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 114px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZALf2QwXFI/AAAAAAAAAoM/HJACCIBHmRo/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300749403184716882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I have placed my tool with caption as “GIS Demos”, so you can find “GIS Demos” button in Arc map interface while importing this .tlb file.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZALf3yAp8I/AAAAAAAAAoU/qJ6a1tQ7_hM/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZALf3yAp8I/AAAAAAAAAoU/qJ6a1tQ7_hM/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300749403592632258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Now if we click on the export button by selecting a feature layer name populated in the drop down list,&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SZALgKHjDFI/AAAAAAAAAoc/wMPDsU_8EH4/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SZALgKHjDFI/AAAAAAAAAoc/wMPDsU_8EH4/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300749408514804818" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;As soon as I provide a file name and say “save” in the file dialog.&lt;br /&gt;It generates GML string for all available features in the selected feature layer and writes them to the file name provided and opens the same file.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SZALgTrDziI/AAAAAAAAAok/DNvyErflQZw/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SZALgTrDziI/AAAAAAAAAok/DNvyErflQZw/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5300749411079671330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-3264422938370435099?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/3264422938370435099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=3264422938370435099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3264422938370435099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3264422938370435099'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-generate-gml-string-for-featrues.html' title='How to generate GML string for featrues available in Feature Layer'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SZALf2QwXFI/AAAAAAAAAoM/HJACCIBHmRo/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-4082899426208311452</id><published>2009-02-05T16:41:00.000+05:30</published><updated>2009-02-05T16:45:09.210+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESRI'/><title type='text'>How to create Polygon features associated or parallel to given Line features</title><content type='html'>Example:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYrJvEOcUuI/AAAAAAAAAnk/IFkHfoWZIWA/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 263px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYrJvEOcUuI/AAAAAAAAAnk/IFkHfoWZIWA/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5299269721980162786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So we need 2 feature layers, &lt;br /&gt;1) Line feature layer (Layer Name – Lines) as input which has some random line or poly line features.&lt;br /&gt;2) Polygon feature layer (Layer Name – Poly) as output which will be updated or inserted with polygon features based upon available line features in given input (Lines) feature layer.&lt;br /&gt;Input parameters:-&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYrJvPhy35I/AAAAAAAAAns/sXVvXijh0TY/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYrJvPhy35I/AAAAAAAAAns/sXVvXijh0TY/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5299269725014122386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;This tool has been built in c#.net whose .tlb file is imported into Arc Map to perform the given actions.&lt;br /&gt;The feature classes drop down lists or combo boxes are loaded with all the available feature layers in the given map or .mxd document.&lt;br /&gt;I have placed my tool in GML name space, so you can find GML button in Arc map interface while importing this .tlb file.&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYrJvUPivXI/AAAAAAAAAn0/e7-CAAySnVg/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYrJvUPivXI/AAAAAAAAAn0/e7-CAAySnVg/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5299269726279744882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Before generating polygon&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYrJvaGxnVI/AAAAAAAAAn8/RJq9APDnNjk/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYrJvaGxnVI/AAAAAAAAAn8/RJq9APDnNjk/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5299269727853583698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;After generating polygon using my tool&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYrJvcHO8pI/AAAAAAAAAoE/3gzkJMQ6sT8/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYrJvcHO8pI/AAAAAAAAAoE/3gzkJMQ6sT8/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5299269728392376978" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-4082899426208311452?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/4082899426208311452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=4082899426208311452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4082899426208311452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4082899426208311452'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/how-to-create-polygon-features.html' title='How to create Polygon features associated or parallel to given Line features'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SYrJvEOcUuI/AAAAAAAAAnk/IFkHfoWZIWA/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-7617458185829682199</id><published>2009-02-05T05:10:00.001+05:30</published><updated>2009-02-05T05:11:53.625+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Accessibility Levels (C# Reference)</title><content type='html'>Considering C#.NET to define the access specifiers at different levels of accessing a class or its members.&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr style='font-weight:bold;'&gt;&lt;td style=’width:30%;’&gt;Access specifier&lt;/td&gt;&lt;td&gt;Meaning&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:30%;’&gt;public&lt;/td&gt;&lt;td&gt;A class or its members declared as public are not restricted and can be accessed at any instant&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:30%;’&gt;private&lt;/td&gt;&lt;td&gt; A class or its members declared as private are restricted such that they can be accessed only locally or in same class &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:30%;’&gt;internal&lt;/td&gt;&lt;td&gt; A class or its members declared as internal are restricted such that they can be accessed only in there specific assembly in which it is defined&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:30%;’&gt;protected internal&lt;/td&gt;&lt;td&gt; A class or its members declared as protected internal are restricted such that they can be accessed only in there specific assembly in which it is defined  and also when class is extended or derived&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:30%;’&gt;protected&lt;/td&gt;&lt;td&gt; A class or its members declared as protected are restricted such that they can be accessed only when class is extended or derived &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;At a particular instant we can use only one access specifier, where as it could be “protected internal”.&lt;br /&gt;Example:-&lt;br /&gt;1) public Example&lt;br /&gt;&lt;b&gt;public class Demo1&lt;br /&gt;{&lt;br /&gt;public void Hello()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;}&lt;/b&gt;&lt;br /&gt;This mean that this class “Demo1” can be called in any class which may belong to even different assembly and also its public member “Hello()”&lt;br /&gt;2) private Example&lt;br /&gt;&lt;b&gt;public class Demo1&lt;br /&gt;{&lt;br /&gt;private  void Hello()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;public void Tell()&lt;br /&gt;{&lt;br /&gt;Hello();&lt;br /&gt;}&lt;br /&gt;}&lt;/b&gt;&lt;br /&gt;This mean that this class “Demo1” can be called in any class which may belong to even different assembly but cannot call or refer its private member “Hello()”.&lt;br /&gt;Whereas  “Tell” public member can be called which indirectly calls the private method “Hello()” in the given example.&lt;br /&gt;3) internal example&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;namespace test&lt;br /&gt;{&lt;br /&gt;public class Demo1&lt;br /&gt;{&lt;br /&gt;internal  void Hello()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;public void Tell()&lt;br /&gt;{&lt;br /&gt;Hello();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;This mean that this class “Demo1” can be called in any class which may belong to even different assembly but cannot call or refer its internal member “Hello()” unless the calling method or member or class belongs to same assembly (test).&lt;br /&gt;Where as “Tell” public member can be called which indirectly calls the internal method “Hello()” in the given example.&lt;br /&gt;4) protected internal Example&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;namespace test&lt;br /&gt;{&lt;br /&gt;public class Demo1&lt;br /&gt;{&lt;br /&gt;protected internal  void Hello()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;public void Tell()&lt;br /&gt;{&lt;br /&gt;Hello();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;This mean that this class “Demo1” can be called in any class which may belong to even different assembly but cannot call or refer its protected internal member “Hello()” unless the calling method or member or class belongs to same assembly (test) and Class Demo1 is extended or derived from this class in which we are willing to call this internal protected member “Hello()”..&lt;br /&gt;Where as “Tell” public member can be called which indirectly calls the protected internal method “Hello()” in the given example.&lt;br /&gt;&lt;br /&gt;5) protected Example&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;namespace test&lt;br /&gt;{&lt;br /&gt;public class Demo1&lt;br /&gt;{&lt;br /&gt;protected void Hello()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;public void Tell()&lt;br /&gt;{&lt;br /&gt;Hello();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;This mean that this class “Demo1” can be called in any class which may belong to even different assembly but cannot call or refer its protected member “Hello()” unless Class Demo1 is extended or derived from this class in which we are willing to call this protected member “Hello()”..&lt;br /&gt;Where as “Tell” public member can be called which indirectly calls the protected internal method “Hello()” in the given example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-7617458185829682199?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/7617458185829682199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=7617458185829682199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7617458185829682199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7617458185829682199'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/accessibility-levels-c-reference.html' title='Accessibility Levels (C# Reference)'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-1967491002122517962</id><published>2009-02-01T16:25:00.000+05:30</published><updated>2009-02-01T16:26:10.229+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle function that returns a table of random numbers or characters</title><content type='html'>This oracle function expects 3 Input Parameters.&lt;br /&gt;argCount IN NUMBER    : Total number of random numbers to be generated.&lt;br /&gt;argMinLimit IN NUMBER : Random number sequence minimum value. &lt;br /&gt;argMaxLimit IN NUMBER : Random number max value.&lt;br /&gt;Sinec my oracle function has to return a TABLE of random numbers, I would like to create a type of table type.&lt;br /&gt;Refer&lt;br /&gt;&lt;a href=http://programmerfindings.blogspot.com/2009/01/oracle-function-to-return-comma_30.html” target=”_blank”&gt;Type in Prog. Findings&lt;/a&gt; for what type is?&lt;br /&gt;&lt;b&gt;I am creating a type of table as&lt;br /&gt;CREATE TYPE tbl_Rand AS TABLE OF VARCHAR2(10)&lt;/b&gt;&lt;br /&gt;I have created this type as varchar, though random numbers stored are number data type is because in future I can elaborate my oracle function to generate random varchar values.&lt;br /&gt;Number can be stored in varchar data type but varchar cannot be stored in number data type.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYLMISDz0HI/AAAAAAAAAkU/1wRQC4uWnUs/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 99px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYLMISDz0HI/AAAAAAAAAkU/1wRQC4uWnUs/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5297020554399961202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;My oracle function is:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;--Expecting 3 Input parameters &lt;br /&gt;CREATE OR REPLACE FUNCTION fun_Rand(argCount IN NUMBER,argMinLimit IN NUMBER,argMaxLimit IN NUMBER)&lt;br /&gt;RETURN tbl_rand pipelined &lt;br /&gt;IS&lt;br /&gt;tmpVal VARCHAR2(10);&lt;br /&gt;BEGIN&lt;br /&gt;--Looping for given argCount number of times&lt;br /&gt;FOR i IN 1 .. argCount&lt;br /&gt;LOOP&lt;br /&gt;--Generating random number between given argMinLimit and argMaxLimit&lt;br /&gt;tmpVal:=ROUND(dbms_random.value(argMinLimit,argMaxLimit),0);&lt;br /&gt;--Piping the generated random number into the table type&lt;br /&gt;pipe ROW(tmpVal);&lt;br /&gt;END LOOP&lt;br /&gt;RETURN;&lt;br /&gt;END;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYLMIuBc66I/AAAAAAAAAkc/a6kbuhIKmso/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 138px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYLMIuBc66I/AAAAAAAAAkc/a6kbuhIKmso/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5297020561906264994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Output:-&lt;br /&gt;Query: select * from table(fun_Rand(5,10,100))&lt;br /&gt;This mean that to generate 5 random numbers between 10 and 100.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYLMIgOU4mI/AAAAAAAAAkk/qx9LNta8950/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 188px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYLMIgOU4mI/AAAAAAAAAkk/qx9LNta8950/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5297020558202167906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now I can elaborate my oracle function to generate random characters argCount IN NUMBER    : Total number of random charaters to be generated.&lt;br /&gt;argMinLimit IN NUMBER : Ascii code value to be considered from or minimum value. &lt;br /&gt;argMaxLimit IN NUMBER : Ascii code value to be considered up to or maximum value.&lt;br /&gt;Oracle function:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;--Expecting 3 Input parameters &lt;br /&gt;CREATE OR REPLACE FUNCTION fun_Rand(argCount IN NUMBER,argMinLimit IN NUMBER,argMaxLimit IN NUMBER)&lt;br /&gt;RETURN tbl_rand pipelined &lt;br /&gt;IS&lt;br /&gt;tmpVal VARCHAR2(10);&lt;br /&gt;BEGIN&lt;br /&gt;--Looping for given argCount number of times&lt;br /&gt;FOR i IN 1 .. argCount&lt;br /&gt;LOOP&lt;br /&gt;--Generating random number between given argMinLimit and argMaxLimit and &lt;br /&gt;--getting character associated with this ascii code&lt;br /&gt;tmpVal:=CHR(ROUND(dbms_random.value(argMinLimit,argMaxLimit),0));&lt;br /&gt;--Piping the generated random number into the table type&lt;br /&gt;pipe ROW(tmpVal);&lt;br /&gt;END LOOP&lt;br /&gt;RETURN;&lt;br /&gt;END;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYLMIybbZyI/AAAAAAAAAks/z5GEc4Z3IXI/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 132px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYLMIybbZyI/AAAAAAAAAks/z5GEc4Z3IXI/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5297020563088959266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Query:&lt;br /&gt;select * from table(fun_Rand(5,10,100))&lt;br /&gt;This mean that to generate 5 characters whose ascii code is between 10 and 100.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYLMI5Yg4oI/AAAAAAAAAk0/e9zKQ7UCWKE/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 161px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYLMI5Yg4oI/AAAAAAAAAk0/e9zKQ7UCWKE/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5297020564955783810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-1967491002122517962?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/1967491002122517962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=1967491002122517962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1967491002122517962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1967491002122517962'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/02/oracle-function-that-returns-table-of.html' title='Oracle function that returns a table of random numbers or characters'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SYLMISDz0HI/AAAAAAAAAkU/1wRQC4uWnUs/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-996419649524146245</id><published>2009-01-30T14:33:00.001+05:30</published><updated>2009-01-30T18:53:29.465+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle function to return Comma separated values as Table</title><content type='html'>This oracle function expects varchar as input parameter and returns a table.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:50%’&gt;Input (String)&lt;/td&gt;&lt;td &gt;a,bc,de,fg,hi&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Output (Table)&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYL_NDQEXmI/AAAAAAAAAk8/4KBE0DVCvqY/s1600-h/op.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 156px; height: 85px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYL_NDQEXmI/AAAAAAAAAk8/4KBE0DVCvqY/s320/op.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5297076711417208418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Since output is to expected to be a table, it does not mean to create a temporary table to store the comma separated values.&lt;br /&gt;Oracle provides an option to define a type as user required, some thing like user type.&lt;br /&gt;In similar to programming language as we have int, float, string which are predefined data types, oracle too has such predefined types like varchar, number, char, etc…&lt;br /&gt;&lt;b&gt;In programming language we can define user defined type like classes defined by user,&lt;br /&gt;Also in similar fashion we can create user defined types in oracle using Type clause.&lt;br /&gt;Syntax:-&lt;br /&gt;CREATE OR REPLACE TYPE [TYPE NAME] AS [TYPE];&lt;br /&gt;Ex :-&lt;br /&gt;CREATE OR REPLACE TYPE SampleType AS OBJECT (&lt;br /&gt;A VARCHAR2(100),&lt;br /&gt;B VARCHAR2(100),&lt;br /&gt;C NUMBER&lt;br /&gt;)&lt;/b&gt;&lt;br /&gt;In our case to return a table from oracle function, we should create a object of Type table.&lt;br /&gt;Since table constitutes of columns to append rows, so first we should define an object which holds those columns and next an another object of type table for the above object which holds the columns.&lt;br /&gt;That is,&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;1)&lt;br /&gt;--An object type that holds the values that are comma separated or&lt;br /&gt;--since a table has to hold the comma separated values, so we&lt;br /&gt;--need a single column of varchar datatype&lt;br /&gt;CREATE OR REPLACE TYPE ValueType AS OBJECT (&lt;br /&gt;Val VARCHAR2(100)&lt;br /&gt;)&lt;br /&gt;2)&lt;br /&gt;--We need to create a table that holds the values of the comma separated values,&lt;br /&gt;--such that this table type is table of the above object type (ValueType).&lt;br /&gt;CREATE OR REPLACE TYPE ValueType_Tbl  AS TABLE OF ValueType&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYHdQk3v8TI/AAAAAAAAAj0/W1OkQYrr0wk/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 131px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYHdQk3v8TI/AAAAAAAAAj0/W1OkQYrr0wk/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296757913609564466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;3) Oracle function.&lt;br /&gt;&lt;b&gt;Please copy and paste this function into toad or an editors to understand comments against each line. &lt;/b&gt;&lt;br /&gt;--argStr is the input string that has to splitted based upon delimeter&lt;br /&gt;--delimeter is input string which has to be considered to split,&lt;br /&gt;--such for this comma seperated values delimeter is ","&lt;br /&gt;CREATE OR REPLACE FUNCTION Csv(argStr IN VARCHAR,delimeter IN VARCHAR)&lt;br /&gt;--Return type mean to say that the table type defined as expaind above, &lt;br /&gt;--rows that are to piped in while executing this function should&lt;br /&gt;--be inserted or pipelined into  ValueType_Tbl.&lt;br /&gt;--such that this function returns this pipelined table (ValueType_Tbl)&lt;br /&gt; RETURN ValueType_Tbl PIPELINED IS&lt;br /&gt;tmpStr VARCHAR2(2000);&lt;br /&gt;tmpSubStr VARCHAR2(100);&lt;br /&gt;--Declaring a varaible of the new row type in table (ValueType_Tbl) indirectly&lt;br /&gt;--since ValueType_Tbl is table of ValueType&lt;br /&gt;out_rec  ValueType := ValueType(NULL);&lt;br /&gt;--ValueType(null) mean that it is default value&lt;br /&gt;BEGIN&lt;br /&gt;--taking the input string into another variable&lt;br /&gt;tmpStr:=argStr;&lt;br /&gt;--chekcing the length of the given input string&lt;br /&gt;WHILE(LENGTH(tmpStr)&gt;0 AND tmpStr IS NOT NULL)&lt;br /&gt;LOOP&lt;br /&gt;--taking first par of substring from the string till delimeter occurs (,)&lt;br /&gt;tmpSubStr:=SUBSTR(tmpStr,1,INSTR(tmpStr,delimeter)-1);&lt;br /&gt;--chekcing if there is no other part of string then asking to pipe line this row&lt;br /&gt;-- and exit the loop&lt;br /&gt;IF(tmpSubStr IS NULL)THEN&lt;br /&gt;out_rec.Val:=tmpStr;&lt;br /&gt;PIPE ROW(out_rec);&lt;br /&gt;EXIT;&lt;br /&gt;END IF;&lt;br /&gt;--Assigning the sub string value to the record and pipe linening into the considered table type&lt;br /&gt;out_rec.Val:=tmpSubStr;&lt;br /&gt;PIPE ROW(out_rec);&lt;br /&gt;--Taking the other of string after removing the sub string&lt;br /&gt;tmpStr:=SUBSTR(tmpStr,INSTR(tmpStr,delimeter)+1);&lt;br /&gt;END LOOP;&lt;br /&gt;RETURN ;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYHdQ8RNNgI/AAAAAAAAAkE/OBYrv0YTeFU/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 194px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYHdQ8RNNgI/AAAAAAAAAkE/OBYrv0YTeFU/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296757919890355714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYHdQ66q0RI/AAAAAAAAAkM/vRGu4s3QuCY/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 98px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYHdQ66q0RI/AAAAAAAAAkM/vRGu4s3QuCY/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296757919527391506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Output:-&lt;br /&gt;Query that has to be executed to run this oracle function&lt;br /&gt;SELECT * FROM TABLE(Csv('1,bc,de,fg',','))&lt;br /&gt;&lt;b&gt;We can observe that this function which returns, we are trying to type cast the pipelined rows to a table, such that we can have the result set in table format&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYHdQ-1BCvI/AAAAAAAAAj8/xD4L6-z7l-s/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 189px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYHdQ-1BCvI/AAAAAAAAAj8/xD4L6-z7l-s/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296757920577424114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-996419649524146245?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/996419649524146245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=996419649524146245' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/996419649524146245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/996419649524146245'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/oracle-function-to-return-comma_30.html' title='Oracle function to return Comma separated values as Table'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SYL_NDQEXmI/AAAAAAAAAk8/4KBE0DVCvqY/s72-c/op.GIF' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-203656066354186023</id><published>2009-01-29T18:19:00.001+05:30</published><updated>2009-01-29T18:29:37.736+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Registration form in three tire architecture.</title><content type='html'>This 3 tier architecture or layers are categorised such that they communicate to each other to perform tasks.&lt;br /&gt;These 3 layers are said to be as&lt;br /&gt;1) Presentation Layer (User Interface form).&lt;br /&gt;2) Business Layer (Layer where business plans can be validated or Media between user to application core data base.&lt;br /&gt;3) Data Layer (Layer which is very specific to access database and does not interact with user directly but send/receive information from User through Business Layer.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYGmBguGz8I/AAAAAAAAAik/63koLRDZAOE/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 155px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYGmBguGz8I/AAAAAAAAAik/63koLRDZAOE/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296697181657812930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;We can find 3 blocks in this diagram that states that there is inter block communication to handle requests and response from user.&lt;br /&gt;&lt;br /&gt;Example:-&lt;br /&gt;I would like to create a windows form named “3Tier –Demo”.&lt;br /&gt;&lt;b&gt;Presentation Layer &lt;/b&gt;&lt;br /&gt;So this comes under first layer (from user prospective) or User Interface.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYGmCEc_ayI/AAAAAAAAAis/2avU-T3_ink/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 313px; height: 279px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYGmCEc_ayI/AAAAAAAAAis/2avU-T3_ink/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296697191249701666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt; Business Layer&lt;/b&gt;&lt;br /&gt;I would like to add new project saying “class library” to this solution saying “BusinessLayer”.&lt;br /&gt;Rename the default created “Class1.cs” to “Form.cs”.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SYGmCP4yLsI/AAAAAAAAAi0/YJo2mc_mOwA/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 127px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SYGmCP4yLsI/AAAAAAAAAi0/YJo2mc_mOwA/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296697194319064770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Data Layer&lt;/b&gt;&lt;br /&gt;Similar fashion as above I would like to add one more class library as new project for this solution saying “DataLayer”.&lt;br /&gt;Rename the default created “Class1.cs” to “Form.cs”.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SYGmClzs69I/AAAAAAAAAi8/E0_QdcCfchM/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 118px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SYGmClzs69I/AAAAAAAAAi8/E0_QdcCfchM/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296697200203328466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So now there are three layers available to our application (3Tier-Demo).&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYGmCrda-7I/AAAAAAAAAjE/3HeHBgRxgnI/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 145px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYGmCrda-7I/AAAAAAAAAjE/3HeHBgRxgnI/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296697201720490930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Step 1&lt;/b&gt;&lt;br /&gt;First I would to start coding from Data layer, i.e; to start writing sql querues that perform sql transactions with the database like select, Insert, Update, Delete etc…&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace DataLayer&lt;br /&gt;{&lt;br /&gt;    public class Form&lt;br /&gt;    {&lt;br /&gt;        //Connection string set to this which is read and set from app.config file or any other &lt;br /&gt;        //hardcoded variable&lt;br /&gt;        public string ConnectionString;&lt;br /&gt;        public void InsertData(string argName, int argAge, string argOccupation, string argPlace)&lt;br /&gt;        {&lt;br /&gt;            //Write code to open orcale/sql connection, insert query to be performed, etc... &lt;br /&gt;        }&lt;br /&gt;        public void ReadData(string argName,out int argAge,out string argOccupation,out string argPlace)&lt;br /&gt;        {&lt;br /&gt;      argAge = 0;&lt;br /&gt;            argOccupation = String.Empty;&lt;br /&gt;            argPlace = String.Empty;&lt;br /&gt;            //Write code to open orcale/sql connection, select query to read user&lt;br /&gt;            //details based upon given username (argName)&lt;br /&gt;            //Assign readed age,location,place to the given out parameters.        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now build data layer, add this as reference to business layer.&lt;br /&gt;Since business layer has to interact with data layer to handle user requests or response.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYGnzBk4IFI/AAAAAAAAAjM/ZJt41-guzvs/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 175px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYGnzBk4IFI/AAAAAAAAAjM/ZJt41-guzvs/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296699131802689618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Step 2&lt;/b&gt;&lt;br /&gt;Now I would like to start coding in business layer (Form.cs).&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using DataLayer;&lt;br /&gt;namespace BusinessLayer&lt;br /&gt;{&lt;br /&gt;    public class Form&lt;br /&gt;    {&lt;br /&gt;        //Connection string set to this which is read and set from app.config file or any other &lt;br /&gt;        //hardcoded variable&lt;br /&gt;        public string ConnectionString;&lt;br /&gt;        public void InsertData(string argName, int argAge, string argOccupation, string argPlace)&lt;br /&gt;        {&lt;br /&gt;            DataLayer.Form objForm = new DataLayer.Form();&lt;br /&gt;            objForm.ConnectionString = ConnectionString;&lt;br /&gt;            objForm.InsertData(argName, argAge, argOccupation, argPlace);&lt;br /&gt;        }&lt;br /&gt;        public void ReadData(string argName, out int argAge, out string argOccupation, out string argPlace)&lt;br /&gt;        {&lt;br /&gt;            argAge = 0;&lt;br /&gt;            argOccupation = String.Empty;&lt;br /&gt;            argPlace = String.Empty;&lt;br /&gt;            DataLayer.Form objForm = new DataLayer.Form();&lt;br /&gt;            objForm.ConnectionString = ConnectionString;&lt;br /&gt;            objForm.ReadData(argName,out argAge, out argOccupation, out argPlace);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Similarly, add this business layer as reference to presentation layer (3Tier-Demo).&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYGnzFu5lZI/AAAAAAAAAjU/GqiTTwGozHM/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 199px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYGnzFu5lZI/AAAAAAAAAjU/GqiTTwGozHM/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296699132918470034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt; Step 3&lt;/b&gt;&lt;br /&gt;I would like to start coding in Presentation Layer or 3Tier-Demo, in the windows form accessing the business layers form class to get or send data from or to database through data layer.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYGnzekkHbI/AAAAAAAAAjc/sxB_8FtHRUM/s1600-h/8.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYGnzekkHbI/AAAAAAAAAjc/sxB_8FtHRUM/s320/8.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296699139586006450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SYGnzke_1cI/AAAAAAAAAjk/v7NCgbw_0H4/s1600-h/9.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 83px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SYGnzke_1cI/AAAAAAAAAjk/v7NCgbw_0H4/s320/9.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296699141173269954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Now after building the application, it is fine.&lt;br /&gt;Things left and to be written or updated&lt;br /&gt;1) Write sql queries for specific actions like Insert or select or update to specific table.&lt;br /&gt;2) Mention connection string for appropriate database.&lt;br /&gt;3) Call these “Insertdata” and “Getdata” functions in Presentation layer where ever needed or required.&lt;br /&gt;&lt;b&gt;There are some instants where we introduce one more layer saying&lt;br /&gt; "Common Layer" that holds the data transfered from/to between these 3 layers&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYGnz1-o_5I/AAAAAAAAAjs/DeTvn8dd0kQ/s1600-h/10.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 155px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYGnz1-o_5I/AAAAAAAAAjs/DeTvn8dd0kQ/s320/10.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296699145869393810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-203656066354186023?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/203656066354186023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=203656066354186023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/203656066354186023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/203656066354186023'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/registration-form-in-three-tire.html' title='Registration form in three tire architecture.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SYGmBguGz8I/AAAAAAAAAik/63koLRDZAOE/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2265054442725199524</id><published>2009-01-28T16:52:00.000+05:30</published><updated>2009-01-28T17:00:08.081+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to send HTML content in Mail?</title><content type='html'>We can find many mails that we are in loop among friends like sending birthday wishes, festival, advertisements, captions, scenaries, etc…&lt;br /&gt;I would like to share my code that could help to send such kind of mails very easily.&lt;br /&gt;I have created a windows form which asks for to/Form mail ID, From Mail ID’s password, Mail subject, Body.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SYBAaEmBLJI/AAAAAAAAAhk/xBO3cSh048g/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SYBAaEmBLJI/AAAAAAAAAhk/xBO3cSh048g/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296303978441682066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;In this body is an html file which you can browse. So that the content of the browsed html file is considered as body. So, the mail is sent saying that its content is html.&lt;br /&gt;I am using Google mail server which helps me to send mails globally.&lt;br /&gt;Code:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Web.Mail;&lt;br /&gt;namespace SendMail&lt;br /&gt;{&lt;br /&gt;    public partial class frmSendMail : Form&lt;br /&gt;    {&lt;br /&gt;        string strTitle = "Send Mail";&lt;br /&gt;        public frmSendMail()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;        private void btnBrowse_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            opnFldlg.ShowDialog();&lt;br /&gt;            lblPath.Text = opnFldlg.FileName;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void btnSend_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                if (txtPassword.Text.Trim().Length == 0 || txtToMailID.Text.Trim().Length == 0 || txtFromMail.Text.Trim().Length == 0 || txtSubject.Text.Trim().Length == 0 || lblPath.Text.Trim().Length == 0)&lt;br /&gt;                    throw new Exception("Please enter detals");&lt;br /&gt;                btnSend.Text = "Sending...";&lt;br /&gt;MessageBox.Show(SendMail(txtFromMail.Text.Trim(), txtPassword.Text.Trim(), txtToMailID.Text.Trim(), File.ReadAllText(lblPath.Text.Trim()), txtSubject.Text.Trim()), strTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);            }&lt;br /&gt;            catch (Exception exp)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(exp.Message, strTitle, MessageBoxButtons.OK, MessageBoxIcon.Information);&lt;br /&gt;            }&lt;br /&gt;            finally&lt;br /&gt;            {&lt;br /&gt;                btnSend.Text = "Send";&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private string SendMail(string strFromMailID, string strPswd,string strToMailID, string strBody, string strSubject)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                SmtpMail.SmtpServer = "smtp.gmail.com";&lt;br /&gt;                MailMessage message = new MailMessage();&lt;br /&gt;                message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");&lt;br /&gt;                message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", strFromMailID);&lt;br /&gt;                message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", strPswd);&lt;br /&gt;                message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "465");&lt;br /&gt;                message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");&lt;br /&gt;                message.From = strFromMailID;&lt;br /&gt;                message.To = strToMailID;&lt;br /&gt;                message.BodyFormat = MailFormat.Html;&lt;br /&gt;                message.Subject = strSubject;&lt;br /&gt;                message.Body = strBody;&lt;br /&gt;                SmtpMail.Send(message);&lt;br /&gt;                return "Mail sent successfully to " + strToMailID;&lt;br /&gt;            }&lt;br /&gt;            catch (Exception exp)&lt;br /&gt;            {&lt;br /&gt;                throw exp;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Say suppose I would like to wish my friend for his birthday with a greeting card.&lt;br /&gt;I found a greeting card through google at http://www.4to40.com/images/egreetings/Birthday/Happy_Birthday_Wishes-Birthday-148_big.gif.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYBAaVBHTTI/AAAAAAAAAhs/LSu6pujEtNc/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYBAaVBHTTI/AAAAAAAAAhs/LSu6pujEtNc/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296303982850297138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now I will prepare a html page that includes this image and few lines with my comments in it.&lt;br /&gt;Now I can browse this html page as body through my windows forms and send it to my friend.&lt;br /&gt;My HTML page using this image url&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt; &amp;lt;head&amp;gt;&lt;br /&gt;  &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt; &amp;lt;/head&amp;gt;&lt;br /&gt; &amp;lt;body&amp;gt;&lt;br /&gt; &amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt; Hi Friend...... &lt;br /&gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt; &amp;lt;img src="http://www.4to40.com/images/egreetings/Birthday/Happy_Birthday_Wishes-Birthday-148_big.gif"  width='50%' /&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt; Cheers,&lt;br /&gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt; &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt; Srinivas&lt;br /&gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Html Page output :-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SYBAakOxAYI/AAAAAAAAAh0/0Ec3mJP83rg/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SYBAakOxAYI/AAAAAAAAAh0/0Ec3mJP83rg/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296303986934088066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I saved this html file as “wishes.htm”.&lt;br /&gt;Now I am filling the form with the details to send this html content as mail.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SYBAbMs3g-I/AAAAAAAAAh8/02zP7uO_kUw/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 187px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SYBAbMs3g-I/AAAAAAAAAh8/02zP7uO_kUw/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296303997797762018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;When I click on send,&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SYBAbcBiMQI/AAAAAAAAAiE/dbJ5ft59Qa8/s1600-h/5.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 187px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SYBAbcBiMQI/AAAAAAAAAiE/dbJ5ft59Qa8/s320/5.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296304001910976770" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SYBBKewK73I/AAAAAAAAAiM/XeVcCJBw_gQ/s1600-h/6.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 187px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SYBBKewK73I/AAAAAAAAAiM/XeVcCJBw_gQ/s320/6.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296304810097307506" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Now I wish to open my 2 gmails (vsssrinivas85 and surya.srinivas85) to check this mail in outbox and in box respectively.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Vsssrinivas85 - Outbox &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SYBBK-3Jx2I/AAAAAAAAAiU/84RkbzHci1g/s1600-h/7.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 82px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SYBBK-3Jx2I/AAAAAAAAAiU/84RkbzHci1g/s320/7.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296304818716526434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;surya.srinivas85- Inbox&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SYBBKyp8VsI/AAAAAAAAAic/TUIm8fTjc3Q/s1600-h/8.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 251px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SYBBKyp8VsI/AAAAAAAAAic/TUIm8fTjc3Q/s320/8.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5296304815439894210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2265054442725199524?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2265054442725199524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2265054442725199524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2265054442725199524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2265054442725199524'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-send-html-content-in-mail.html' title='How to send HTML content in Mail?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SYBAaEmBLJI/AAAAAAAAAhk/xBO3cSh048g/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-971088918197061495</id><published>2009-01-27T18:22:00.000+05:30</published><updated>2009-01-27T18:31:09.306+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to debug JavaScript in .NET?</title><content type='html'>Latest Microsoft visual studio 2008 is providing an option to debug javascript.&lt;br /&gt;In earlier versions of Microsoft visual studio 2003 or 2005, we need to externally place debug option in javascript code.&lt;br /&gt;&lt;br /&gt;Example:-&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Demo1&amp;lt;/title&amp;gt;&lt;br /&gt;   &lt;b&gt; &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function clk1(obj)&lt;br /&gt;    {&lt;br /&gt;   debugger&lt;br /&gt;    alert(obj.value);&lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="Hi" onclick="clk1(this);" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;In above html content, we can find “debugger” in javascript function.&lt;br /&gt;At the moment when this clk1 () function is called and control is at debugger line, we get an option in browser to choose the debugging editor.&lt;br /&gt;Output:-&lt;br /&gt;As soon as I click on the button, which is calling the javascript function that I am wishing to debug.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SX8DzCF5qPI/AAAAAAAAAhM/kGeGZPn_BPs/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SX8DzCF5qPI/AAAAAAAAAhM/kGeGZPn_BPs/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295955862080825586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now I am selecting to choose new instance of visual studio 2005 or I can even continue in same visual studio editor where I am writing my source code.&lt;br /&gt;&lt;br /&gt;It highlights the line where debugger is placed.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SX8DzWxrLrI/AAAAAAAAAhU/9H-iEKuthog/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 302px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SX8DzWxrLrI/AAAAAAAAAhU/9H-iEKuthog/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295955867633135282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;From now debugging is same as how we do in code behind page. i.e;&lt;br /&gt;F10 key to goto next line and donot go into the child function&lt;br /&gt;F11key to got next line and also into the child function&lt;br /&gt;Cntrl + Alt + Q for quick watch of an object.&lt;br /&gt;F5 to continue to next debugger, if next debugger not found continue execution.&lt;br /&gt;Etc…&lt;br /&gt;&lt;br /&gt;We get plus sign over there after placing near to the object, which I can expand and investigate in detail for each attribute, text etc…&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SX8DzuAucXI/AAAAAAAAAhc/4LTQhMrutHQ/s1600-h/4.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 293px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SX8DzuAucXI/AAAAAAAAAhc/4LTQhMrutHQ/s320/4.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295955873870279026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Note:-&lt;br /&gt;When you try to debug, we should also check whether browser supports to debug javascript.&lt;br /&gt;For this&lt;br /&gt;If it is Internet explorer then&lt;br /&gt;1) Go to “Tools”.&lt;br /&gt;2) “Internet Options” – “Advanced” tab.&lt;br /&gt;3) Uncheck the check box which is saying “Disable script debugging”.&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SX8Dy9kvt6I/AAAAAAAAAhE/Bcdl51_2x3g/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 287px; height: 320px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SX8Dy9kvt6I/AAAAAAAAAhE/Bcdl51_2x3g/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295955860868020130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-971088918197061495?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/971088918197061495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=971088918197061495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/971088918197061495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/971088918197061495'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-debug-javascript-in-net.html' title='How to debug JavaScript in .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SX8DzCF5qPI/AAAAAAAAAhM/kGeGZPn_BPs/s72-c/2.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8903028328350861339</id><published>2009-01-27T16:35:00.000+05:30</published><updated>2009-01-27T16:40:57.056+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to refer elements in an html file in another html file?</title><content type='html'>We are sure that elements or html components like textbox, checkbox, div, table, label, span, etc.. are accessible through JavaScript by saying “document.getElementById”.&lt;br /&gt;Example:-&lt;br /&gt;I am creating an html page with name Demo1.html&lt;br /&gt;I have an html component as&lt;br /&gt;&amp;lt;div id=”div1”&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;We could say &lt;br /&gt;document.getElementById(‘div1’) which returns div1 object.&lt;br /&gt;Demo1 Html file:-&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Demo1&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function clk()&lt;br /&gt;    {&lt;br /&gt;    alert(document.getElementById('div1'));&lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="div1"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="div" onclick="clk();" /&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SX7qtO6lvLI/AAAAAAAAAgs/ewlrRjWc22c/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 286px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SX7qtO6lvLI/AAAAAAAAAgs/ewlrRjWc22c/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295928274653134002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now I am creating an another html page say Demo2.html, with content same as Demo1 i.e;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Demo2&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function clk()&lt;br /&gt;    {&lt;br /&gt;    alert(document.getElementById('div1'));&lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="div1"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="div" onclick="clk();" /&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;Now I want access div tag whose id is “div1” available in Demo2.html from Demo1.html.&lt;br /&gt;In such case, I would like place “iframe” object in Demo1.htm whose src is Demo2.html&lt;br /&gt;Demo1.html:-&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Demo1&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function clk1()&lt;br /&gt;    {&lt;br /&gt;    alert(document.getElementById('div1'));&lt;br /&gt;    }&lt;br /&gt;   &lt;b&gt; function clk2()&lt;br /&gt;    {&lt;br /&gt;    alert(dm2.document.getElementById('div1'));&lt;br /&gt;    }&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="div1"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="Demo1-div" onclick="clk1();" /&amp;gt;&lt;br /&gt;&lt;b&gt;&amp;lt;br/&amp;gt;&amp;lt;input type="button" value="Demo2-div" onclick="clk2();" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;iframe src="demo2.htm" id="dm2"&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;Output:-&lt;br /&gt;Clicking on ="Demo2-div" button&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SX7qtBWE4hI/AAAAAAAAAg0/5pDp0ceRSO0/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 267px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SX7qtBWE4hI/AAAAAAAAAg0/5pDp0ceRSO0/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295928271010325010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;If required we can hide the iframe, so that user cannot view that Demo1.html is including Demo2.html.&lt;br /&gt;Demo1.html:-&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Demo1&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function clk1()&lt;br /&gt;    {&lt;br /&gt;    alert(document.getElementById('div1'));&lt;br /&gt;    }&lt;br /&gt;&lt;b&gt; function clk2()&lt;br /&gt;    {&lt;br /&gt;    alert(dm2.document.getElementById('div1');&lt;br /&gt;    }&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;div id="div1"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;input type="button" value="Demo1-div" onclick="clk1();" /&amp;gt;&lt;br /&gt;&amp;lt;br/&amp;gt;&lt;br /&gt;&lt;b&gt;&amp;lt;input type="button" value="Demo2-div" onclick="clk2();" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;iframe src="demo2.htm" id="dm2" style="display:none"&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;Clicking on ="Demo2-div" button&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SX7qtZQYahI/AAAAAAAAAg8/7wG7XXbolNE/s1600-h/3.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SX7qtZQYahI/AAAAAAAAAg8/7wG7XXbolNE/s320/3.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295928277428890130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8903028328350861339?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8903028328350861339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8903028328350861339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8903028328350861339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8903028328350861339'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-refer-elements-in-html-file-in.html' title='How to refer elements in an html file in another html file?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SX7qtO6lvLI/AAAAAAAAAgs/ewlrRjWc22c/s72-c/1.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2670954568153807945</id><published>2009-01-27T15:14:00.000+05:30</published><updated>2009-01-27T15:15:57.380+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>How to Import and Export Database dump file in Oracle.</title><content type='html'>After installing oracle, we can find imp.exe and exp.exe files in bin folder.&lt;br /&gt;These exe files could help for importing and exporting database dump.&lt;br /&gt;&lt;br /&gt;This database dump file consists of tables (with or without data), database objects (Stored procedures, Views, Triggers, Constraints, Indexes, Sequences, etc…).&lt;br /&gt;&lt;br /&gt;While exporting or importing, we have an option whether to consider table data or not.&lt;br /&gt;So situations, like where we are just in need of only schema it helps to export or import without data. We also have an option for importing or exporting selected tables, i.e; we can mention a list of tables which we require to export or import.&lt;br /&gt;&lt;br /&gt;So these exp and imp exe files have input parameters which are set depending upon need.&lt;br /&gt;To know the parameters of imp, say in command prompt as &lt;br /&gt;&lt;b&gt;Imp help=y&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SX7Xoe1tdMI/AAAAAAAAAgM/umAVRwFgvic/s1600-h/imp.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 285px; height: 320px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SX7Xoe1tdMI/AAAAAAAAAgM/umAVRwFgvic/s320/imp.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295907302307361986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Similarly for exp say,&lt;br /&gt;&lt;b&gt;Exp help=y&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SX7XomWrapI/AAAAAAAAAgU/eqQOvXBqaJ0/s1600-h/exp.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 285px; height: 320px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SX7XomWrapI/AAAAAAAAAgU/eqQOvXBqaJ0/s320/exp.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295907304324688530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;We can find imp and exp files almost expect the same kind of parameters.&lt;br /&gt;&lt;br /&gt;Example:-&lt;br /&gt;If I have a database whose connection string is&lt;br /&gt;Demo/abcd@MyDB&lt;br /&gt;(User name: Demo&lt;br /&gt;Password: abcd&lt;br /&gt;Schema: MyDB)&lt;br /&gt;If I need to export I can go to command prompt and say “exp”, then it asks me for username where I have to give Demo/abcd@MyDB.&lt;br /&gt;After that it asks for the file path where dump has to be exported, Export table data or not.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SX7Xojwo7RI/AAAAAAAAAgc/C13ZKhcmj5A/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 158px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SX7Xojwo7RI/AAAAAAAAAgc/C13ZKhcmj5A/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295907303628270866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;or I can say&lt;br /&gt;exp Demo/abcd@MyDB file=[dumpfile export path] rows=(Y or N) log=[log file path]&lt;br /&gt;This directly connects to the database and exports the database objects to the specific dump file path mentioned. We can find a log file at given Log file path, to just verify if there are any errors while exporting.&lt;br /&gt;If we want only selected tables to be exported we can say&lt;br /&gt;exp Demo/abcd@MyDB file=[dumpfile export path] rows=(Y or N) log=[log file path] tables=(table1, table2, tables3, …tablen)&lt;br /&gt;&lt;br /&gt;Also for importing a database dump file, I should say imp in command prompt.&lt;br /&gt;Say, if I am willing to import a database dump file to Demo\abcd@MyDemo,&lt;br /&gt;Then I should give username as Demo\abcd@MyDemo, wheimp.exe prompts for.&lt;br /&gt;Then it asks for the database dump file where it is to export.&lt;br /&gt;We can either give the path or drag and drop the dump file.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SX7Xo4s75eI/AAAAAAAAAgk/KS7XV6EwQ2M/s1600-h/2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 158px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SX7Xo4s75eI/AAAAAAAAAgk/KS7XV6EwQ2M/s320/2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5295907309249881570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;or&lt;br /&gt;I can say&lt;br /&gt;Imp Demo\abcd@MyDemo file=[import databse dump file path] log=[log file path] rows=Y tables=(table1, table2.. tablen).&lt;br /&gt;So import and export process seems to be almost same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2670954568153807945?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2670954568153807945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2670954568153807945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2670954568153807945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2670954568153807945'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-import-and-export-database-dump.html' title='How to Import and Export Database dump file in Oracle.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SX7Xoe1tdMI/AAAAAAAAAgM/umAVRwFgvic/s72-c/imp.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-1709265522436772268</id><published>2009-01-25T20:27:00.001+05:30</published><updated>2009-01-25T20:27:51.803+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Request is not available in this context -  Resolution</title><content type='html'>I have a web application (ASP.NET) using IIS 6.0 in my machine.&lt;br /&gt;I have prepared a web application set up of this web site.&lt;br /&gt;&lt;br /&gt;Then I have copied and installed this web application set up in my friend’s machine which is having IIS 7.0.&lt;br /&gt;I felt that after installing this web set up in that machine, it works fine.&lt;br /&gt;&lt;br /&gt;Set up runnned well and I found the web folder created in the core folder (c:\Inetpub\wwwroot\).&lt;br /&gt;&lt;br /&gt;But after browsing the web application for login page, it is giving a strange error saying”Request is not available in this context”.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXu6RW1CXgI/AAAAAAAAAfs/zgg3wmdGs1w/s1600-h/1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXu6RW1CXgI/AAAAAAAAAfs/zgg3wmdGs1w/s320/1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295030594252725762" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt; I am having global.asax file for this web site in which under “Applcation_start” event I am using “HttpContext.Current.Request” function to read some xml file available in the root directory.&lt;br /&gt;While surfing through google, I found that in IIS 7.0, we cannot use this request object in application start event.&lt;br /&gt;As of now to make my web application to be worked, I found a temporary solution.&lt;br /&gt;Step 1:&lt;br /&gt;I opened Inetmgr (Internet Information Service manager(IIS)).&lt;br /&gt;Under my machine name tab,I have selected “Applcation pools” and said “Set Applicaition pool defaults..”.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/SXu6RxuxoZI/AAAAAAAAAf0/b2qkPOciNAw/s1600-h/2.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SXu6RxuxoZI/AAAAAAAAAf0/b2qkPOciNAw/s320/2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295030601474220434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I have changed “Managed pipeline mode” value from “Integrated” to “Classic”.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/__bty7fMcKAc/SXu6SDIhmeI/AAAAAAAAAf8/sdZyCyn2b50/s1600-h/3.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SXu6SDIhmeI/AAAAAAAAAf8/sdZyCyn2b50/s320/3.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295030606145624546" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;There after doing this, when I have tried to browse my web application. It worked fine.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/SXu6SoMGWKI/AAAAAAAAAgE/XOpnzn-_IRc/s1600-h/4.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SXu6SoMGWKI/AAAAAAAAAgE/XOpnzn-_IRc/s320/4.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295030616092727458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;/td.&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-1709265522436772268?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/1709265522436772268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=1709265522436772268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1709265522436772268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1709265522436772268'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/request-is-not-available-in-this_25.html' title='Request is not available in this context -  Resolution'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SXu6RW1CXgI/AAAAAAAAAfs/zgg3wmdGs1w/s72-c/1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3838533626051189797</id><published>2009-01-25T05:30:00.001+05:30</published><updated>2009-01-25T05:53:35.915+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to make an assembly as shared or global assembly.</title><content type='html'>Private assemblies can be made as shared assembly by placing them in shared assembly folder (c:\windows\assembly).&lt;br /&gt;&lt;br /&gt;Please refer &lt;a href="http://programmerfindings.blogspot.com/2009/01/what-are-private-and-global-assemblies.html" target="_blank"&gt;Private and Global assembles in Prog.Findings &lt;/a&gt; for difference between global and private assemblies.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But it is not simple step to just copy and paste in assembly folder.&lt;br /&gt;There are certain steps that are to be followed for doing so.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1:&lt;/b&gt; Prepare private assembly which you are willing to make it as global or shared.&lt;br /&gt;  I am creating a class library named “MsgBox”, in which I have created a class file named “Msg.cs”.&lt;br /&gt;This functionality is to display a message box with the text sent as parameter.&lt;br /&gt;So once if this dll is shared globally among applications, the same function can be used to display message box at all instants.&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;namespace MsgBox&lt;br /&gt;{&lt;br /&gt;    public class Msg&lt;br /&gt;    {&lt;br /&gt;        public void DisplayMessage(string argMessage)&lt;br /&gt;        {&lt;br /&gt;            MessageBox.Show(argMessage);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;After building the project solution, I can find a dll file created inside the bin folder which is said to be as the private assembly.&lt;br /&gt;I wish to make this as global assembly and use the same dll file in other application when and there required.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXusSjExC4I/AAAAAAAAAeM/D511SMTmFkg/s1600-h/1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 74px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXusSjExC4I/AAAAAAAAAeM/D511SMTmFkg/s320/1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015221557005186" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Step 2:&lt;/b&gt; This dll has to be strongly named before placing this into the global assembly folder (c:\windows\assembly).&lt;br /&gt;Strongly naming is a necessary step, else if we try to drag and drop the private assembly into c:\windows\assembly folder with out strongly naming it,&lt;br /&gt;It says “Failure adding assembly to the cache: Attempt to install an assembly without a strong name”.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SXusTNdC9hI/AAAAAAAAAes/gFMe6Xuk6cI/s1600-h/5.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 161px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SXusTNdC9hI/AAAAAAAAAes/gFMe6Xuk6cI/s320/5.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015232933131794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;To strongly name the private assembly:&lt;br /&gt;  Step i) Open .NET command prompt and set the prompt path to the private assembly’s folder path.&lt;br /&gt;Type &lt;br /&gt;sn –k [filename as your wish].snk&lt;br /&gt;Example: - sn –k mykey.snk&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXusS8yw9MI/AAAAAAAAAeU/1beHEPg9g7g/s1600-h/2.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 161px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXusS8yw9MI/AAAAAAAAAeU/1beHEPg9g7g/s320/2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015228460823746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Step ii) You can identify the key file generated in the private assembly folder and with the name given (mykey.snk).&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SXusTBqy5vI/AAAAAAAAAec/33jbUabigtg/s1600-h/3.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 86px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SXusTBqy5vI/AAAAAAAAAec/33jbUabigtg/s320/3.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015229769574130" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Step iii)&lt;br /&gt;Open the “AssemblyInfo.cs” file under properties folder in the class library.&lt;br /&gt;Mention the path of the generated key file as&lt;br /&gt;[assembly: AssemblyKeyFile([key file path])]&lt;br /&gt;In my example&lt;br /&gt;&lt;br /&gt;[assembly: AssemblyKeyFile("C:/Users/srinivas/My personals/Testing/MsgBox/MsgBox/bin/Release/mykey.snk")]&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/__bty7fMcKAc/SXusTAXZoSI/AAAAAAAAAek/_oKLp3nyWU8/s1600-h/4.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 225px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SXusTAXZoSI/AAAAAAAAAek/_oKLp3nyWU8/s320/4.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015229419790626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now build the solution, the dll file which has been created after building the solution is the assembly which is strongly named.&lt;br /&gt;So now this assembly can be globally shared.&lt;br /&gt;&lt;b&gt;Step 3:&lt;/b&gt; Now this strongly named private assembly can be globally shared by either dragging and dropping the dll into assembly folder (c:\windows\assembly) or&lt;br /&gt;By registering the private assembly using .NET Command prompt.&lt;br /&gt;I am using .NET command prompt to do so.&lt;br /&gt;Type:&lt;br /&gt;Gacutil –I [dll file path]&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a href="http://3.bp.blogspot.com/__bty7fMcKAc/SXusg0ICzLI/AAAAAAAAAe0/VGwFHfSZeSQ/s1600-h/6.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 161px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SXusg0ICzLI/AAAAAAAAAe0/VGwFHfSZeSQ/s320/6.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015466652322994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you can find this private assembly as global assembly in “c:\windows\assembly folder.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/SXushIo4dBI/AAAAAAAAAe8/q3k6V6c_Ruo/s1600-h/7.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 223px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SXushIo4dBI/AAAAAAAAAe8/q3k6V6c_Ruo/s320/7.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015472158766098" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 5:&lt;/b&gt; we should copy and paste this private assembly inside frame work folder, such that we can view this dll that can be added through “Add Reference” dialog in .NET solutions.&lt;br /&gt;Framework folder is at &lt;br /&gt;C:\Windows\Microsoft.NET\Framework\v2.0.50727, inside which we can find many dll files that we use while building .NET applications.&lt;br /&gt;System.Data.dll&lt;br /&gt;System.Design.dll,&lt;br /&gt;Etc..&lt;br /&gt;Simillarly we shall copy and paste our private assembly into this folder.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/SXushYZHLrI/AAAAAAAAAfE/tmicaoAcdXU/s1600-h/8.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 223px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SXushYZHLrI/AAAAAAAAAfE/tmicaoAcdXU/s320/8.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015476387589810" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 6:&lt;/b&gt;Now I would like to build a new .NET application in a separate solution and in a separate folder, entirely&lt;br /&gt;I am creating a “Demo1” application, in which I have created a windows form saying “MyApp”.&lt;br /&gt;&lt;br /&gt;When I click on this add references, I can find that private assembly which has been globally shared in “c:\windows\assembly folder.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXushZPmCDI/AAAAAAAAAfM/GgKeGdJMQW8/s1600-h/9.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXushZPmCDI/AAAAAAAAAfM/GgKeGdJMQW8/s320/9.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015476616103986" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;I am using this MsgBox.dll file whose functionality is to display a message box.&lt;br /&gt;Windows form :&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/__bty7fMcKAc/SXushdCAbnI/AAAAAAAAAfU/ESEc6BjDYo4/s1600-h/10.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SXushdCAbnI/AAAAAAAAAfU/ESEc6BjDYo4/s320/10.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295015477632855666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SXutpju8P1I/AAAAAAAAAfc/cKOjDGmXYHE/s1600-h/11.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SXutpju8P1I/AAAAAAAAAfc/cKOjDGmXYHE/s320/11.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295016716382519122" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Output:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXutp4zUq0I/AAAAAAAAAfk/NrX7duiYqmY/s1600-h/12.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXutp4zUq0I/AAAAAAAAAfk/NrX7duiYqmY/s320/12.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5295016722038041410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-3838533626051189797?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/3838533626051189797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=3838533626051189797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3838533626051189797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3838533626051189797'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-make-assembly-as-shared-or.html' title='How to make an assembly as shared or global assembly.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SXusSjExC4I/AAAAAAAAAeM/D511SMTmFkg/s72-c/1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-7060246393843267054</id><published>2009-01-23T21:06:00.001+05:30</published><updated>2009-01-23T21:09:43.451+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>What are private and global assemblies?</title><content type='html'>We are aware that .NET assembly is comprised of Metadata, Manifest &amp; MSIL (Intermediate Language) code.&lt;br /&gt;So this assembly is created with all these set of values.&lt;br /&gt;An assembly could be private or public.&lt;br /&gt;Public mean like, the same assembly is shared among multiple applications.&lt;br /&gt;Private assembly says that the assembly is very specific to the application and cannot be shared. It is stored in bind directory of the application or application folder.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SXnkHL-KV2I/AAAAAAAAAds/AeTJg44_N74/s1600-h/1_1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 173px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SXnkHL-KV2I/AAAAAAAAAds/AeTJg44_N74/s320/1_1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5294513649074460514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SXnkHOupnRI/AAAAAAAAAd0/gIaCjylGOkw/s1600-h/1_2.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 166px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXnkHOupnRI/AAAAAAAAAd0/gIaCjylGOkw/s320/1_2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5294513649814707474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;We can make a private assembly to be shared globally shared and there are few steps which need to be considered for doing so.&lt;br /&gt;Once if a private assembly is made to be global, t can further be referred by other applications&lt;br /&gt;To make an assembly as global, it has to be strongly named, which gives unique identity with version as well.&lt;br /&gt;Below example explains how an assembly can be differentiated in use.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SXnkqgZMF_I/AAAAAAAAAd8/rNdPZw-DeM8/s1600-h/1.GIF"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 243px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SXnkqgZMF_I/AAAAAAAAAd8/rNdPZw-DeM8/s320/1.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5294514255851952114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-7060246393843267054?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/7060246393843267054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=7060246393843267054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7060246393843267054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/7060246393843267054'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/what-are-private-and-global-assemblies.html' title='What are private and global assemblies?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SXnkHL-KV2I/AAAAAAAAAds/AeTJg44_N74/s72-c/1_1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-5845107130559486139</id><published>2009-01-23T01:37:00.000+05:30</published><updated>2009-01-23T01:40:56.991+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Access HTML content in windows application.</title><content type='html'>We might be much habituated in building web applications, such that it could be more efficient in providing information to user in interface (windows application) could be friendlier while using html content than setting text to each individual windows component.&lt;br /&gt;&lt;br /&gt;Example:-&lt;br /&gt;I would like to display a table that has some styles.&lt;br /&gt;In that case I may not replicate exactly using windows applications.&lt;br /&gt;So, if we prepare a html content using required styles and can use that content to display required information.&lt;br /&gt;Windows provides a component called “web browser”, we can just just drag and drop the component onto windows form.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SXjSTDbVAaI/AAAAAAAAAdU/RwoWeol6id0/s1600-h/1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 215px; height: 320px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SXjSTDbVAaI/AAAAAAAAAdU/RwoWeol6id0/s320/1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5294212586753294754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Now I refer this web browser object as “objBrowser”, and use this object to display the html content that I prepare.&lt;br /&gt;HTML content  I am willing to display is a table with some style applied to it.&lt;br /&gt;Content&lt;br /&gt;&amp;lt;table cellpadding=’0’ cellspacing=’0’ border=’0’ align=’center’&amp;gt;&lt;br /&gt;&amp;lt;tr style=’border: 1px solid #618773;’&amp;gt;&amp;lt;td&amp;gt;Hi&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; Friends&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr style=’border: 1px solid #618773;’&amp;gt;&amp;lt;td colspan=’2’&amp;gt;Welcome to my blog&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;Windows form&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXjSTbup--I/AAAAAAAAAdc/DfNdQPUY7AQ/s1600-h/2.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 210px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXjSTbup--I/AAAAAAAAAdc/DfNdQPUY7AQ/s320/2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5294212593276812258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Code file&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;&lt;br /&gt;namespace Learnings&lt;br /&gt;{&lt;br /&gt;    public partial class Browser : Form&lt;br /&gt;    {&lt;br /&gt;        public Browser()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Browser_Load(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            string strContent = "&amp;lt;table cellpadding=’0’ cellspacing=’0’ border=’0’ align=’center’&amp;gt;&amp;lt;tr style=’border: 1px solid #618773;’&amp;gt;&amp;lt;td&amp;gt;Hi&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; Friends&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr style=’border: 1px solid #618773;’&amp;gt;&amp;lt;td colspan=’2’&amp;gt;Welcome to my blog&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;";&lt;br /&gt;            objBrowser.DocumentText = strContent;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;Output:-&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SXjSTpuvMAI/AAAAAAAAAdk/MGYDsTxdBWQ/s1600-h/3.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 199px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SXjSTpuvMAI/AAAAAAAAAdk/MGYDsTxdBWQ/s320/3.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5294212597035249666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-5845107130559486139?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/5845107130559486139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=5845107130559486139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5845107130559486139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5845107130559486139'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/access-html-content-in-windows.html' title='Access HTML content in windows application.'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SXjSTDbVAaI/AAAAAAAAAdU/RwoWeol6id0/s72-c/1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-250601969410735696</id><published>2009-01-22T01:49:00.000+05:30</published><updated>2009-01-22T01:56:14.138+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xml'/><title type='text'>How to create entity in xml files?</title><content type='html'>Xml file which is defined with several tags and elements in it, some times may require repeating the same text or content. In such case it is not needed to re write the same content again and again.&lt;br /&gt;Example:-&lt;br /&gt;&lt;br /&gt;For this below xml content&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;Tags&amp;gt;&lt;br /&gt;&amp;lt;Tag1&amp;gt;&lt;br /&gt;abcde&lt;br /&gt;&amp;lt;/Tag1&amp;gt;&lt;br /&gt;&amp;lt;Tag2&amp;gt;&lt;br /&gt;abcde&lt;br /&gt;&amp;lt;/Tag2&amp;gt;&lt;br /&gt;&amp;lt;/Tags&amp;gt;&lt;br /&gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;You can observe text “abcde” is been repeated twice.&lt;br /&gt;Instead of repeating, we can declare “abcde” text at once and then re use the variable again and again where it is required.&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE example [&lt;br /&gt;&amp;lt;!ENTITY VAR1 “abcde”&amp;gt;]&amp;gt;&lt;br /&gt;&amp;lt;Tags&amp;gt;&lt;br /&gt;&amp;lt;Tag1&amp;gt;&lt;br /&gt;&amp;VAR1;&lt;br /&gt;&amp;lt;/Tag1&amp;gt;&lt;br /&gt;&amp;lt;Tag2&amp;gt;&lt;br /&gt;&amp;VAR1;&lt;br /&gt;&amp;lt;/Tag2&amp;gt;&lt;br /&gt;&amp;lt;/Tags&amp;gt;&lt;br /&gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;&lt;br /&gt;To know in very clear about this, if you are aware about &amp;amp;nbsp; which we use in html or aspx or asp pages, they help to insert space “&amp;nbsp; “ charater.&lt;br /&gt;For this it has an in built entity that places a space character when ever we refer &amp;amp;nbsp;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&amp;lt;!DOCTYPE example [&lt;br /&gt;&amp;lt;!ENTITY &amp;amp;nbsp “ ”;&amp;gt;]&amp;gt;&lt;br /&gt;So we can define many different kind of entities as explained above, which can be used at multiple instants by just calling&lt;br /&gt;&amp;[variable name];&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-250601969410735696?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/250601969410735696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=250601969410735696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/250601969410735696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/250601969410735696'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-create-entity-in-xml-files.html' title='How to create entity in xml files?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8058665906288868545</id><published>2009-01-18T16:58:00.000+05:30</published><updated>2009-01-25T20:26:58.586+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Isolation Level in Oracle</title><content type='html'>We need to have an understanding of different Isolation Levels in Oracle; &lt;br /&gt;Why and what are isolation levels:&lt;br /&gt;With different isolation levels in oracle, the same work performed in the same fashion with the same inputs may result in different answers. The ANSI/ISO SQL standard defines 4 levels of transaction isolation, with different possible outcomes for the same transaction scenario. -  &lt;br /&gt;Read uncommitted: &lt;br /&gt;Read committed&lt;br /&gt;Serializable, &lt;br /&gt;Read-only. &lt;br /&gt;Application designers, application developers, and database administrators can choose appropriate isolation levels for different transactions, depending on the application and workload. I will be taking through each isolation level basing on an example how it works and how is it implemented.&lt;br /&gt;Lets get into the details of Read Uncommitted and what exactly do I mean by Read UnCommitted.&lt;br /&gt;This isolation level allows dirty reads. This means – you are permitted to read uncommitted, or dirty, data. Data integrity is compromised, foreign keys are violated, and unique constraints are ignored. Oracle Database doesn't use dirty reads, nor does it even allow them. The basic goal of a READ UNCOMMITTED isolation level is to provide a standards-based definition that allows for nonblocking reads. As you've seen, Oracle Database provides for nonblocking reads by default. &lt;br /&gt;We shall look at an example of the transaction, whose isolation level has been set to Read Uncommitted:&lt;br /&gt;Lets take a simple bank transaction scenario:&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Row number&lt;/td&gt; &lt;td&gt;Account Number&lt;/td&gt; &lt;td&gt;Account Name&lt;/td&gt;&lt;td&gt; Account Balance&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt; 111&lt;/td&gt;&lt;td&gt; Paul&lt;/td&gt;&lt;td&gt; 1000$&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt; 222&lt;/td&gt;&lt;td&gt; Jeff&lt;/td&gt;&lt;td&gt; 2000$&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt; 333&lt;/td&gt;&lt;td&gt; Tom&lt;/td&gt;&lt;td&gt; 3000$&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;4 &lt;/td&gt;&lt;td&gt;444&lt;/td&gt;&lt;td&gt; Harry&lt;/td&gt;&lt;td&gt; 4000$&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Consider a transaction from account 111 to 444 an amount of 500$ from 111 to 444 which has not been committed yet and a select query which is accessing all the rows in the table. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Row number&lt;/td&gt; &lt;td&gt;Account Number&lt;/td&gt; &lt;td&gt;Account Name&lt;/td&gt;&lt;td&gt; Account Balance&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt; 111&lt;/td&gt;&lt;td&gt; Paul&lt;/td&gt;&lt;td&gt; (1000 ) changed to 500$&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt; 222&lt;/td&gt;&lt;td&gt; Jeff&lt;/td&gt;&lt;td&gt; 2000$&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt; 333&lt;/td&gt;&lt;td&gt; Tom&lt;/td&gt;&lt;td&gt; 3000$&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;4 &lt;/td&gt;&lt;td&gt;444&lt;/td&gt;&lt;td&gt; Harry&lt;/td&gt;&lt;td&gt; (4000) changed &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this scenario, even if the transaction has not been committed yet, the select query sees the values: 500$ in 111 account and 4500$ in the 444 account – which means it is reading dirty data – uncommitted data. . Therefore this not only does it return the wrong answer, but also it returns a total that never existed in the table. In a multiuser database, a dirty read can be a dangerous feature.&lt;br /&gt;&lt;br /&gt;Now, lets take a look at the Read Committed Isolation level: &lt;br /&gt;This is the default transaction isolation level. &lt;br /&gt;If we consider a scenario of a simple transaction and a query simultaneously, the query sees only the data that was committed before the query began (and not the transaction). It will completely avoid the dirty reads. But, even this level  of isolation has a short coming when it is having multiple transactions at the same time – reason is that Oracle does not prevent other transactions from modifying the data while other transaction is still in a processing state (uncommitted). So, if we consider 2 things simultaneously on the same data – a query and a transaction. Assume  transaction hit the DB first - being in the process (uncommitted). It will lock the corresponding rows until the transaction is committed. If a query hits the DB in the process, it would not be able to access the DB until the user commits the changes. But, the bad news here is that the query waiting to read the value of that particular row would actually read  the wrong answer, meaning the uncommitted, previous values that were present before the transaction has began. Thus, a transaction that executes a given query twice can experience both nonrepeatable read and phantoms depending on the other transactions in process.&lt;br /&gt;Here is the same example, where we consider another select query during the transaction. Once the transaction (transfer from 111 to 444 ) begins, the rows 111 and 444 are locked until the commit has been performed. So the query( SELECT Account Balance from TABLE1 ) is in wait state till the transaction commits. At some point the transaction commits and account balances in 111 and 444 are changed to 500 and 4500 respectively unlocking the rows. But, we do not get the appropriate result for the query ( SELECT Account Balance from TABLE1 ) - It will still see &lt;br /&gt;Account Balance&lt;br /&gt;1000 &lt;br /&gt;2000$&lt;br /&gt;3000$&lt;br /&gt;4000&lt;br /&gt;&lt;br /&gt;Instead of actual correct values:&lt;br /&gt;Account Balance&lt;br /&gt;500&lt;br /&gt;2000$&lt;br /&gt;3000$&lt;br /&gt;4500$&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lets take a look at the Serializable transaction. &lt;br /&gt;&lt;br /&gt;This is the highest level of Isolation level that can be achieved and the most safest(but at the cost of performance). The transactions or queries that try to access the DB while the Serializable transaction is in process, would be able to get the correct values at any time. In this level of isolation, the rows involved in the transaction are blocked and any queries hitting the DB in the process would block  also be blocked. &lt;br /&gt;Serializable isolation is suitable for environments:&lt;br /&gt;• With large databases and short transactions that update only a few rows &lt;br /&gt;• Where the chance that two concurrent transactions will modify the same rows is relatively low.&lt;br /&gt;• Where relatively long-running transactions are primarily read-only &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am considering the same example and scenario. A transaction in process and a query concurrently trying to read the same rows involved in the transaction. This isolation permits such concurrent transactions. &lt;br /&gt;Oracle generates an error when a serializable transaction tries to update or delete data modified by a transaction that commits after the serializable transaction began:&lt;br /&gt;Cannot serialize access for this transaction. &lt;br /&gt;When a serializable transaction fails with the "Cannot serialize access" error, the application can take any of several actions:&lt;br /&gt;• Commit the work executed to that point &lt;br /&gt;• Execute additional (but different) statements (perhaps after rolling back to a savepoint established earlier in the transaction) &lt;br /&gt;• Roll back the entire transaction.&lt;br /&gt;We need to understand that the name suggests, they will be executed in a serial(sequential model) . These kind of  transactions do not experience nonrepeatable reads or phantoms&lt;br /&gt;Let's consider an example:&lt;br /&gt;These levels are defined in terms of three phenomena that are either permitted or not at a given isolation level: &lt;br /&gt;• Dirty read: The meaning of this term is as bad as it sounds. You're permitted to read uncommitted, or dirty, data. You can achieve this effect by just opening an OS file that someone else is writing and reading whatever data happens to be there. Data integrity is compromised, foreign keys are violated, and unique constraints are ignored. &lt;br /&gt;• Nonrepeatable read: This simply means that if you read a row at time T1 and try to reread that row at time T2, the row may have changed. It may have disappeared, it may have been updated, and so on. &lt;br /&gt;• Phantom read: This means that if you execute a query at time T1 and re-execute it at time T2, additional rows may have been added to the database, which may affect your results. This differs from a nonrepeatable read in that with a phantom read, data you already read hasn't been changed, but instead, more data satisfies your query criteria than before. &lt;br /&gt;You can set the isolation level of a transaction by using one of these statements at the beginning of a transaction:&lt;br /&gt;SET TRANSACTION ISOLATION LEVEL READ COMMITTED; &lt;br /&gt;&lt;br /&gt;SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; &lt;br /&gt;&lt;br /&gt;SET TRANSACTION ISOLATION LEVEL READ ONLY;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8058665906288868545?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8058665906288868545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8058665906288868545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8058665906288868545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8058665906288868545'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/isolation-level-in-oracle.html' title='Isolation Level in Oracle'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-4111899396980015035</id><published>2009-01-17T07:14:00.000+05:30</published><updated>2009-01-17T09:04:02.728+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle Manages Data Concurrency and Consistency</title><content type='html'>The risk of handling the queries from different users in multi user environment on a single table with in a unique data base needs to be designed and organized.&lt;br /&gt; &lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXFPJAt55aI/AAAAAAAAAdM/wQtrzr5yeQI/s1600-h/1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 208px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXFPJAt55aI/AAAAAAAAAdM/wQtrzr5yeQI/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5292098053366998434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;In this diagram, we can find a sample table in a data base. There are many queries sent by multi users at same instant of time.&lt;br /&gt;There are three kinds of queries here&lt;br /&gt;1) Data Readers (select queries).&lt;br /&gt;2) Data writer or updater (Insert, Delete, Update).&lt;br /&gt;3) Data reader and writer (select with insert).&lt;br /&gt;&lt;br /&gt;Here comes concurrency into picture, as we can see several requests on same table at same instant of time.&lt;br /&gt;Data reader’s concurrency&lt;br /&gt;When user hits the data base by opening a connection (beginning a transaction) and run&lt;br /&gt;Insert/Update/Delete statements, they seem to do data manipulation.&lt;br /&gt;But be sure that those records which are considered for these statements in this transaction are locked.&lt;br /&gt;So when this transaction is not committed or still in process, and if another user who is data reader (select query) reads the entire table data (select * from..) shall get data from these records whose data is old or the manipulated data will not reflect.&lt;br /&gt;So if this transaction is committed, then the manipulated data is saved and readers (select queries) who read data after the transaction is committed can find the updated data.&lt;br /&gt;&lt;br /&gt;If the transaction is not committed, reading the un committed data is ridiculous because user may roll back the transaction.&lt;br /&gt;So if readers read uncommitted data, it is called as dirty data.&lt;br /&gt;&lt;br /&gt;Data writer’s concurrency.&lt;br /&gt;Let us consider update query is executed by a user in a specific transaction, which is not yet committed.&lt;br /&gt;If another user in another transaction tries to update the same record, will be blocked.&lt;br /&gt;This is because that specific record which is already manipulated and is locked in another transaction.&lt;br /&gt;So unless that transaction is either rollbacked or committed, it cannot be manipulated in this transaction.&lt;br /&gt;To check it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Open sql plus say this as window 1 for reference&lt;br /&gt;1) Log in into your data base.&lt;br /&gt;2) Create table “test” as&lt;br /&gt;Create table test&lt;br /&gt;(&lt;br /&gt;id number,&lt;br /&gt;name varchar2(10)&lt;br /&gt;);&lt;br /&gt;3) Insert a row into this table saying&lt;br /&gt;Insert into test values(1,’Srinivas’);&lt;br /&gt;4) Commit this transaction (commit) in window 1.&lt;br /&gt;&lt;br /&gt;5) Open another sql plus window say as window 2 for reference and log into same data base.&lt;br /&gt;&lt;br /&gt;6) Run an update query saying&lt;br /&gt;Update test set name=’Srini’ where id=1;&lt;br /&gt;&lt;br /&gt;7) Don’t commit this transaction in window 2. (So this record is locked in this transaction).&lt;br /&gt;8) Now go back to the previous window (window 1). Run an update query as&lt;br /&gt;Update test set name=’VSSS’ where id=1;&lt;br /&gt;&lt;br /&gt;You can observe this window 1 is hanged or some thing like blocked.&lt;br /&gt;It is because the record which we are trying to update is locked in another transaction (window 2).&lt;br /&gt;So, now go back to window 2 and say either commit or roll back. Automatically the query which is blocked in window 1 transaction will be executed, since the record which it is trying to manipulate is unlocked.&lt;br /&gt;&lt;br /&gt;This is called serializable transaction.&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SXFNhKGZSNI/AAAAAAAAAdE/YBE9BoVNm7M/s1600-h/2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 185px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SXFNhKGZSNI/AAAAAAAAAdE/YBE9BoVNm7M/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5292096269179242706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-4111899396980015035?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/4111899396980015035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=4111899396980015035' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4111899396980015035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4111899396980015035'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/oracle-manages-data-concurrency-and.html' title='Oracle Manages Data Concurrency and Consistency'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SXFPJAt55aI/AAAAAAAAAdM/wQtrzr5yeQI/s72-c/1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-493403438132791409</id><published>2009-01-15T16:58:00.001+05:30</published><updated>2009-01-15T16:58:17.078+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>What is the difference between dll and exe?</title><content type='html'>There are multiple differences between an .exe and .dll file. I can update few among those to my best.&lt;br /&gt;Though both seem to be in files format but in reality the usability differs too far.&lt;br /&gt;Exe: - Extensible Execute File&lt;br /&gt;Dll: - Dynamic linkage library.&lt;br /&gt;&lt;br /&gt;1)&lt;br /&gt;&lt;b&gt;.Exe is readily executable &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Any exe file (calc.exe, cmd.exe, winword.exe, notepad.exe  etc…) can be executed directly by calling the exe file name or double clicking clicking on the exe file.&lt;br /&gt;It is not required some other way of instantiating. So an exe can run by itself but we need to just call based upon our need.&lt;br /&gt;Example: - If we would like to open calculator in windows operating system.&lt;br /&gt;i) Go to command prompt, type ‘Calc’ and press enter.&lt;br /&gt;&lt;br /&gt;                    Or&lt;br /&gt;&lt;br /&gt;ii) Go to “C:\WINDOWS\system32” and click on ‘calc.exe’ file available.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;.Dll is not readily executable&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Any dll file cannot be runned immediately or by itself. I mean we cannot do any thing with a dll file instantly. It can be used in application to prepare an exe file, so when we run this exe file it loads the referring dll file dynamically and links to it. So dll file is loaded and linked dynamically.&lt;br /&gt;&lt;br /&gt;Dll file holds the compiled logic of methods or functionalities.&lt;br /&gt;Say suppose to restart machine there could be a process or logic, this logic or process is written as method or function and then compiled.&lt;br /&gt;This compiled logic can be a dll file. This can the be dynamically loaded or linked in an application or exe when and there required to restart machine.  &lt;br /&gt;&lt;br /&gt;So dll is a file that is composed of read only sections which has code and resources that can be reused among applications or other compile source codes (dll’s).&lt;br /&gt;&lt;br /&gt;Example:-&lt;br /&gt;If we go to “C:\WINDOWS\system32”, we can find many dll files available which does do nothing by clicking on it, but they are loaded and linked dynamically by exe’s.&lt;br /&gt;&lt;br /&gt;So Exe can run on its own, where as Dll is loaded, referenced or linked by Exe dynamically.&lt;br /&gt;2)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;.Exe has single entry point&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Any file that is exe has only one single entry point. Main method is the first and the only unique method to identify the entry point of an exe file.&lt;br /&gt;So when we run an exe file, the main method composed in exe file is called first and starts from there.&lt;br /&gt;There cannot be more than one entry in .exe&lt;br /&gt;&lt;br /&gt;&lt;b&gt;.Dll has multiple entries&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Dll is very opposite to what Exe is. Dll file is composed of the logics or compiled version of many methods or functions that can be used in exe by being referred.&lt;br /&gt;&lt;br /&gt;So we can refer multiple different functions available in dll from exe file, multiple times. So it is said to have multiple entries.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWtKaYqJOII/AAAAAAAAAb8/pOD_iH28gcg/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWtKaYqJOII/AAAAAAAAAb8/pOD_iH28gcg/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290404004433049730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;3) &lt;b&gt;Reusability&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Dll files support reusability more in actual.&lt;br /&gt;Exe cannot be re used but to create such exe again, we need to compile again by copying the existing code of an exe.&lt;br /&gt;&lt;br /&gt;Since dll support reusability, functions which are generic and could be used in multiples applications (exe’s) or with in multiple functions or logic’s (dll’s) can be placed in a single dll file. So when we need to run such generic function in any application or with in a function, we can just load that dll and refer to the method available in its respective dll file.&lt;br /&gt;Please observe diagram below, how methods or function in abc.dll and def.dll can be reused among dll’s and exe’s instead of re writing the functions again when required.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWtKaldYVkI/AAAAAAAAAcE/TN7EHI_Xx5s/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 275px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWtKaldYVkI/AAAAAAAAAcE/TN7EHI_Xx5s/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290404007869175362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;So the advantage of reusability is, when there occurs a situation to modify logic in generic function it could be done easily to change at only one place as it is being referred in every exe and dll files.&lt;br /&gt;In above example, we can observe Method2() from abc.dll is being referred by  456.exe.&lt;br /&gt;So when i need to change some functionality in Method2(), I can just replace the existing abc.dll with compiled version of newly implemented logic or change in Method2.&lt;br /&gt;&lt;br /&gt;So when I do such change in abc.dll, it automatically reflects when we run 456.exe because the abc.dll is linked and loaded dynamically by 456.exe file.&lt;br /&gt;&lt;br /&gt;Also, method2() from abc.dll is referred in multiple exe’s or dll’s, it is not required to compile every dll where it is referred and prepare new exe where this functionality is used. Since acd.dll is loaded and linked dynamically to respective exe or dll.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWtKbBpCGwI/AAAAAAAAAcU/w-GFT37fkiA/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 275px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWtKbBpCGwI/AAAAAAAAAcU/w-GFT37fkiA/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290404015434242818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;4)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Exe is out process&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;When we run an exe file or application, memory should be allocated externally to run.&lt;br /&gt;Since it has to be done externally while running an exe, it is said to be “Out Process”.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Exe is in process&lt;/b&gt;&lt;br /&gt;When a dll file is been refered with in an exe, so the dll file will be loaded into memory which is with in the memory consumed by the exe file.&lt;br /&gt;So this is called as “In Process”.&lt;br /&gt;&lt;br /&gt;From the above diagram, when we run 123.exe it loads abc.dll to call method2() function.&lt;br /&gt;&lt;br /&gt; &lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWtKahY5PoI/AAAAAAAAAcM/-GfqOiFIupI/s1600-h/4.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 117px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWtKahY5PoI/AAAAAAAAAcM/-GfqOiFIupI/s320/4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290404006776618626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advantages of dll&lt;/b&gt;&lt;br /&gt;1) Reusability, Supports reusability of functionalities by implementing the generic function or method in a single dll file.&lt;br /&gt;2) Dynamic, Can be linked and loaded dynamically, so changes made in dll file reflect at all instants where it is referred by either exe or dll.&lt;br /&gt;3) Versioned, Dll can be versioned, such that several releases of same dll can be differentiated based upon version number.&lt;br /&gt;4) Multiple entries, can directly call the required method available in the dll file.&lt;br /&gt;5) In process, since dll is in process component, so any method calls or properties need not to be marshaled and which results to faster performance.&lt;br /&gt;6) Low memory usage. Dll is loaded only when requested by a dll or exe and so memory is assigned or occupied by dll only when loaded or required.&lt;br /&gt;7) Reduced swapping, if same dll is requested by 2 exe’s at same time or while one exe is running, then instead of loading the same dll it is loaded only once.  A counter is incremented upon number of requests ande decremented when request is completed. So when the counter is zero, the dll is unloaded from memory.&lt;br /&gt;8) Interoperable between languages, dll built or compiled in a specific language can be re used in an exe which might be built in other language.Unfortunately, there are few languages that support dll’s.&lt;br /&gt;9) Efficient market support, If a release of application has been made and later there could be required to in corporate few changes.&lt;br /&gt;In such case instead of re delivering the entire product, we can just re build the required dll and replace it in the delivered application folder where it is required to be.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disadvantages of dll&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1) Any unhandled exceptions that could occur in dll leads to stop client process as dll is referred by application or exe but not executed directly. &lt;br /&gt;2) Dll Hell:- When we try to install a new application which refer to few dll’s, these dll files could also be installed along with exe. So, there could be situation where these dll’s could replace the existing dll files. If the version is different for both dll’s then the existing applications which refer to the older dll may face some problems while dynamically loading that dll file. So applications should be built in such a way to ensure back ward compatability.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advantages of Exe&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1) Readily executable, Exe files are very ready executable and can run on its own.&lt;br /&gt;&lt;b&gt;Disadvantages of Exe&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1) Not reusable, Exe files are not reusable as dll files.&lt;br /&gt;2) Should be very care full while running an unknown exe which could be a virus to collapse a machine.&lt;br /&gt;3) Exe’s cannot be versioned as dll files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-493403438132791409?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/493403438132791409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=493403438132791409' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/493403438132791409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/493403438132791409'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/what-is-difference-between-dll-and-exe_15.html' title='What is the difference between dll and exe?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SWtKaYqJOII/AAAAAAAAAb8/pOD_iH28gcg/s72-c/1.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-415919138477224518</id><published>2009-01-14T14:49:00.001+05:30</published><updated>2009-01-14T14:54:27.208+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Sequence grouping logic using .NET?</title><content type='html'>This post is to build a windows application using C#.NET&lt;br /&gt;&lt;br /&gt;The necessity of this application is as follows.&lt;br /&gt;&lt;br /&gt;Input:-&lt;br /&gt;&lt;br /&gt;A text file which has data as follows&lt;br /&gt;1,6,3,5,8,31,43,10,44,13,44,12,66,45,11,32,40,45,43,44,60,2,67&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;I need to sort all these values and then group the numbers on sequence basis as &lt;br /&gt;1 - 3, 5 - 6,8,10 - 13, 31 - 32, 40, 43 - 45, 60, 66 - 67&lt;br /&gt;&lt;br /&gt;These lines of code are to open an “open file dialog” box to browse and open text file that has the above input data.&lt;br /&gt;&lt;br /&gt;I am creating a simple windows form that has only one button to open “open file dialog” box.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWscWgjn8tI/AAAAAAAAAbc/7bSY2udGKdM/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 108px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWscWgjn8tI/AAAAAAAAAbc/7bSY2udGKdM/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290353360298832594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Code:-&lt;br /&gt;//Open file dialog&lt;br /&gt;                opnFldg.ShowDialog();&lt;br /&gt;                //Get selected file path from file dialog and assigne to variable&lt;br /&gt;                string strFile = opnFldg.FileName;&lt;br /&gt;                //If file is selected with out cancelling the save dialog&lt;br /&gt;                if (strFile.Trim().Length &gt; 0)&lt;br /&gt;                {&lt;br /&gt;                    //Initialise string builder to append each string&lt;br /&gt;                    StringBuilder objBuilder = new StringBuilder();&lt;br /&gt;                    //Read all the data avialble in the text file&lt;br /&gt;                    string strData = File.ReadAllText(strFile);&lt;br /&gt;                    //Spilt the data available in the text file based on comma's &lt;br /&gt;                    //to get exact numbers&lt;br /&gt;                    string[] strNums = strData.Split(new char[1] { ',' });&lt;br /&gt;                    //Convert the string values to number so, that sort can be done and&lt;br /&gt;                    //differences of consecutive can be calculated to create sequenec string&lt;br /&gt;                    int[] intNums = new int[strNums.Length];&lt;br /&gt;                    for (int i = 0; i &lt; strNums.Length; i++)&lt;br /&gt;                        intNums[i] = Convert.ToInt32(strNums[i]);&lt;br /&gt;                    //sort the number array&lt;br /&gt;                    Array.Sort(intNums);&lt;br /&gt;                    int intPrevNum = 0;&lt;br /&gt;                    //Loop through each item in the sorted number array&lt;br /&gt;                    for (int i = 0; i &lt; intNums.Length; i++)&lt;br /&gt;                    {&lt;br /&gt;                        if (i == 0)&lt;br /&gt;                        {&lt;br /&gt;                            //If it is first item append directly&lt;br /&gt;                            objBuilder.Append(intNums[i]);&lt;br /&gt;                        }&lt;br /&gt;                            //If consecutive number difference is greater than or equal to 2&lt;br /&gt;                        else if (intNums[i] - intNums[i - 1] &gt;= 2)&lt;br /&gt;                        {&lt;br /&gt;                            //If top number from previous sequences is not equal to&lt;br /&gt;                            //previous number then append '-' to say that there to and from sequence&lt;br /&gt;                            if (intPrevNum != intNums[i - 1])&lt;br /&gt;                            objBuilder.Append(" - " + intNums[i - 1]);&lt;br /&gt;                            //Appaned ',' and new number to start new sequenece&lt;br /&gt;                            objBuilder.Append(" ,"+intNums[i]);&lt;br /&gt;                            //Assign the current sequence header or top to previous number&lt;br /&gt;                            intPrevNum = intNums[i];&lt;br /&gt;                        }&lt;br /&gt;                            //If it is last number and also if the difference between previous number and&lt;br /&gt;                            //curretn number is not greater than or equal to 2 then append '-'&lt;br /&gt;                        else if (i == intNums.Length - 1)&lt;br /&gt;                        {&lt;br /&gt;                            objBuilder.Append(" - " + intNums[i]);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                    //Display message box of the created string&lt;br /&gt;                    MessageBox.Show(objBuilder.ToString());&lt;br /&gt;                }&lt;br /&gt;Output:-&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SWscWzYVMgI/AAAAAAAAAbs/c46L8GjE7GY/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SWscWzYVMgI/AAAAAAAAAbs/c46L8GjE7GY/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290353365351739906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWscWyb30II/AAAAAAAAAbk/s106htgtPWU/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWscWyb30II/AAAAAAAAAbk/s106htgtPWU/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290353365098156162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWscXCqPydI/AAAAAAAAAb0/JdA_HUWTeCQ/s1600-h/4.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 244px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWscXCqPydI/AAAAAAAAAb0/JdA_HUWTeCQ/s320/4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290353369453414866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-415919138477224518?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/415919138477224518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=415919138477224518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/415919138477224518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/415919138477224518'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/sequence-grouping-logic-using-net_14.html' title='Sequence grouping logic using .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SWscWgjn8tI/AAAAAAAAAbc/7bSY2udGKdM/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2152615921622898544</id><published>2009-01-13T11:52:00.001+05:30</published><updated>2009-01-30T23:01:14.384+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>What is Common language runtime?</title><content type='html'>What is CLR?&lt;br /&gt;CLR (Common language runtime) is one of the major key components or core of .NET. &lt;br /&gt;It provides an operating layer between .NET applications and the operating system available in specific machine.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWtbgJcdp_I/AAAAAAAAAcc/WngJRfuoOkg/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 117px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWtbgJcdp_I/AAAAAAAAAcc/WngJRfuoOkg/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290422795126024178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;.NET source codes which are builded by .NET compilers are very abstract, such that which leads to language inter operable.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWtbgEK6o5I/AAAAAAAAAck/ZKYjJa8mE2U/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 117px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWtbgEK6o5I/AAAAAAAAAck/ZKYjJa8mE2U/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290422793710248850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;From the above diagram, we can identify the compiled output from the c# source code is been referred in VB source code.&lt;br /&gt;It is not like every language (java, c, etc….) compiled output can be reused in .NeT to re use there functionalities or logics.&lt;br /&gt;There are very specific languages whose compiled output can be reused and such languages need to satisfy a set of rules called “Common Language Specification” (CLS).&lt;br /&gt;So languages which satisfy the set of rules defined in CLS can be in set of interoperability of .NET applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; So there is an abstract or conceptual representation of .NET applications which need to be understood by CLR to tell to operating system to perform such kind of tasks. &lt;/b&gt;&lt;br /&gt;.NET Application abstract&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWtbgmL9NyI/AAAAAAAAAcs/80FUNEEeUlo/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 289px; height: 200px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWtbgmL9NyI/AAAAAAAAAcs/80FUNEEeUlo/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290422802841417506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Module&lt;br /&gt;&lt;br /&gt;Managed code represents the functionality or implementation of the logic encoded in abstract binary form called Microsoft intermediate language (MSIL), or common intermediate language (CIL). This is also referred as intermediate language (IL).&lt;br /&gt;This IL code from above abstract is managed at run time.&lt;br /&gt;A .NET application may constitute of more than 1 managed executables.&lt;br /&gt;Each managed executable consists of Meta data and Managed code.&lt;br /&gt;&lt;br /&gt;CLR consists of 2 imperative components such as loader and Just in Time compiler (JIT Compiler).&lt;br /&gt;Loader dynamically reads the Meta data of required module and creates in memory an internal representation and layout of the classes and members.&lt;br /&gt;Only classes those are referred are loaded but not the entire module.&lt;br /&gt;JIT Compiler compiles the methods encoded in IL into the native code of the underlying plat form.&lt;br /&gt;&lt;br /&gt;This IL Code is then converted to native code and executable. There could be situations where this compiled native code is cached in CLR, such that next time when the same module was expected to be loaded, instead of again compiling IL to native code, only the Meta data of module is read by loader to create internal representation and layout.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SWtbgizq-7I/AAAAAAAAAc0/28dz9zJJPXM/s1600-h/4.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 178px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SWtbgizq-7I/AAAAAAAAAc0/28dz9zJJPXM/s320/4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5290422801934252978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Common Language Runtime (CLR)&lt;br /&gt;The pre compiled code of the .NET frame work is saved into local disk, such that the pre compiled files are executed directly when required instead of again using JTI compiler to create native code.&lt;br /&gt;Also, we need the original file as well as the pre compiled native code does not have meta data to create internal representation of classes or layout.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2152615921622898544?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2152615921622898544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2152615921622898544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2152615921622898544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2152615921622898544'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/what-is-common-language-runtime_12.html' title='What is Common language runtime?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SWtbgJcdp_I/AAAAAAAAAcc/WngJRfuoOkg/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-4958435503114636980</id><published>2009-01-12T14:57:00.000+05:30</published><updated>2009-01-12T16:21:23.705+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>How to find child fields that are referencing to a parent field in oracle?</title><content type='html'>Oracle dictionary views help to trace the child tables and columns that are referencing (foreign key) to a column in parent table.&lt;br /&gt;Oracle dictionary views that can be used are&lt;br /&gt;1) user_constraints (This holds information about constraints available in current schema).&lt;br /&gt;2) user_cons_columns (This holds information about columns available in current schema and also the constraint names that are associated to each individual column).&lt;br /&gt;Refer for Oracle data dictionary views &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2008/11/oracle-data-dictionary-views.html" target="_blank"&gt;Dictionary views in Prog. Findings part 1 &lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2008/11/oracle-data-dictionary-views-part-2.html" target="_blank"&gt;Dictionary views in Prog. Findings part 2 &lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://programmerfindings.blogspot.com/2008/11/oracle-data-dictionary-views-part-3.html" target="_blank"&gt;Dictionary views in Prog. Findings part 3 &lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Query:-&lt;br /&gt;SELECT user_constraints.table_name AS chld_table_name,tab1.column_name AS chld_column_name FROM user_constraints,(SELECT column_name,constraint_name FROM&lt;br /&gt;user_cons_columns) tab1&lt;br /&gt; WHERE&lt;br /&gt; tab1.constraint_name=user_constraints.constraint_name&lt;br /&gt; AND &lt;br /&gt; user_constraints.constraint_type='R'&lt;br /&gt; AND&lt;br /&gt; r_constraint_name IN (SELECT constraint_name FROM user_cons_columns WHERE table_name='[PARENT_TABLE_NAME INPUT]' AND column_name='[PARENT_TABLE COLUMN_NAME INPUT]')&lt;br /&gt;&lt;br /&gt;Example:-&lt;br /&gt;&lt;br /&gt;Consider 3 tables&lt;br /&gt;1) User details table (Parent table).&lt;br /&gt;2) Salary details table (Child table).&lt;br /&gt;3) Leave details table (Child table).&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWc2sa9IWII/AAAAAAAAAbE/Pn52mnw6ECo/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 309px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWc2sa9IWII/AAAAAAAAAbE/Pn52mnw6ECo/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5289256424147802242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;User details table has ID as primary key field which is been referenced by ID columns in Salary details and leave details table.&lt;br /&gt;Upon running the above given query as&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT user_constraints.table_name AS chld_table_name,tab1.column_name AS chld_column_name FROM user_constraints,(SELECT column_name,constraint_name FROM&lt;br /&gt;user_cons_columns) tab1&lt;br /&gt; WHERE&lt;br /&gt; tab1.constraint_name=user_constraints.constraint_name&lt;br /&gt; AND &lt;br /&gt; user_constraints.constraint_type='R'&lt;br /&gt; AND&lt;br /&gt; r_constraint_name IN (SELECT constraint_name FROM user_cons_columns WHERE table_name='USER_DETAILS' AND column_name='ID')&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWc2sTyCdVI/AAAAAAAAAbM/h7bjnDqmhmk/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 99px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWc2sTyCdVI/AAAAAAAAAbM/h7bjnDqmhmk/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5289256422222230866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-4958435503114636980?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/4958435503114636980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=4958435503114636980' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4958435503114636980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4958435503114636980'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-find-child-fields-that-are_12.html' title='How to find child fields that are referencing to a parent field in oracle?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SWc2sa9IWII/AAAAAAAAAbE/Pn52mnw6ECo/s72-c/1.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8954657647363495131</id><published>2009-01-11T14:44:00.001+05:30</published><updated>2009-01-11T14:44:33.891+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Auto complete date using JavaScript</title><content type='html'>Considering fate format as dd/MM/yyyy&lt;br /&gt;When user enters date in text box and focuses out from it, we can validate the text entered in the text box.&lt;br /&gt;If it is not in valid format we can display an alert box saying invalid date.&lt;br /&gt;If the date is valid but incomplete, then we can complete the date to be in dd/MM/yyyy format.&lt;br /&gt;&lt;br /&gt;Valid but not complete means&lt;br /&gt;If user enter dd/MM then on focus out we should make it dd/MM/yyyy(current year)&lt;br /&gt;If user enters dd/MM/yy then on focus out we should make it dd/MM/yyyy&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Please copy below html code which includes java script function that auto completes date&lt;/b&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Date format&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function IsValidDate(argID,msg)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;    {  &lt;br /&gt;    &lt;br /&gt;  var argDate=document.getElementById(argID).value;&lt;br /&gt; var fdts=null;&lt;br /&gt; if(argDate.length==0)&lt;br /&gt; return true;&lt;br /&gt;  if(argDate!='')&lt;br /&gt;       {&lt;br /&gt;       if(argDate.indexOf(".")!=-1)&lt;br /&gt;       {&lt;br /&gt;        alert(msg);&lt;br /&gt;        document.getElementById(argID).value='';&lt;br /&gt;        document.getElementById(argID).focus();&lt;br /&gt;        return false;&lt;br /&gt;       }&lt;br /&gt;       fdts=argDate.split("/");       &lt;br /&gt;       }       &lt;br /&gt;       &lt;br /&gt;        if(fdts!=null)&lt;br /&gt;        {&lt;br /&gt;            if(fdts[1].length!=2)&lt;br /&gt;            {&lt;br /&gt;            alert(msg);&lt;br /&gt;            document.getElementById(argID).value='';&lt;br /&gt;            document.getElementById(argID).focus();&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;            if(fdts[0].length!=2)&lt;br /&gt;            {&lt;br /&gt;            alert(msg);&lt;br /&gt;            document.getElementById(argID).value='';&lt;br /&gt;            document.getElementById(argID).focus();&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;            if(fdts.length&amp;gt;2)&lt;br /&gt;            {&lt;br /&gt;                if(fdts[2].length!=2 &amp;&amp; fdts[2].length!=4)&lt;br /&gt;                {&lt;br /&gt;                alert(msg);&lt;br /&gt;                document.getElementById(argID).value='';&lt;br /&gt;                document.getElementById(argID).focus();&lt;br /&gt;                return false;&lt;br /&gt;                }               &lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;             var crDt=new Date();&lt;br /&gt;               fdts[2]=crDt.getFullYear();&lt;br /&gt;            }&lt;br /&gt;           &lt;br /&gt;            if(!isInteger(fdts[2]) || !isInteger(fdts[1]) || !isInteger(fdts[0]))&lt;br /&gt;            {&lt;br /&gt;            alert(msg);&lt;br /&gt;            document.getElementById(argID).value='';&lt;br /&gt;            document.getElementById(argID).focus();&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;        alert(msg);&lt;br /&gt;        document.getElementById(argID).value='';&lt;br /&gt;        document.getElementById(argID).focus();&lt;br /&gt;        return false;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    if(fdts[1]&amp;gt;12)&lt;br /&gt;    {&lt;br /&gt;    alert(msg);&lt;br /&gt;    document.getElementById(argID).value='';&lt;br /&gt;    document.getElementById(argID).focus();&lt;br /&gt;     return false;&lt;br /&gt;    }&lt;br /&gt;    var yr=fdts[2];&lt;br /&gt;    if(yr.length==2)&lt;br /&gt;    {&lt;br /&gt;      var crDate=new Date();&lt;br /&gt;      var crCtry=crDate.getFullYear();&lt;br /&gt;       var pstCnry=crCtry-100;&lt;br /&gt;      crCtry=crCtry+' ';&lt;br /&gt;      pstCnry=pstCnry+' ';&lt;br /&gt;      crCtry=crCtry.substr(0,2);      &lt;br /&gt;      pstCnry=pstCnry.substr(0,2);&lt;br /&gt;      if(yr&amp;gt;=32)&lt;br /&gt;      yr=pstCnry+yr;&lt;br /&gt;      else&lt;br /&gt;      yr=crCtry+yr;&lt;br /&gt;      fdts[2]=yr;&lt;br /&gt;      &lt;br /&gt;    }&lt;br /&gt;    if(fdts[1]==2)&lt;br /&gt;    {&lt;br /&gt;        if(fdts[2]%4==0)&lt;br /&gt;        {&lt;br /&gt;            if(fdts[0]&amp;gt;29)&lt;br /&gt;            {&lt;br /&gt;            alert(msg);&lt;br /&gt;            document.getElementById(argID).value='';&lt;br /&gt;            document.getElementById(argID).focus();&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;           if(fdts[0]&amp;gt;28)&lt;br /&gt;            {&lt;br /&gt;            alert(msg);&lt;br /&gt;            document.getElementById(argID).value='';&lt;br /&gt;            document.getElementById(argID).focus();&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    if(fdts[1]==1 || fdts[1]==3 || fdts[1]==5 || fdts[1]==7 || fdts[1]==8 || fdts[1]==10 || fdts[1]==12)&lt;br /&gt;    {&lt;br /&gt;         if(fdts[0]&amp;gt;31)&lt;br /&gt;            {&lt;br /&gt;            alert(msg);&lt;br /&gt;            document.getElementById(argID).value='';&lt;br /&gt;            document.getElementById(argID).focus();&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;     if(fdts[1]==4 || fdts[1]==6 || fdts[1]==9 || fdts[1]==11 )&lt;br /&gt;    {&lt;br /&gt;         if(fdts[0]&amp;gt;30)&lt;br /&gt;            {&lt;br /&gt;            alert(msg);&lt;br /&gt;            document.getElementById(argID).value='';&lt;br /&gt;            document.getElementById(argID).focus();&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;    document.getElementById(argID).value=fdts[0]+'/'+fdts[1]+'/'+fdts[2];&lt;br /&gt;    return true;&lt;br /&gt;     } &lt;br /&gt;    catch(e)&lt;br /&gt;    {&lt;br /&gt;     alert(msg);&lt;br /&gt;     document.getElementById(argID).value='';&lt;br /&gt;     document.getElementById(argID).focus();&lt;br /&gt;     return false;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;function isInteger(s){&lt;br /&gt; var i;&lt;br /&gt;    for (i = 0; i &amp;lt; s.length; i++){   &lt;br /&gt;        // Check that current character is number.&lt;br /&gt;        var c = s.charAt(i);&lt;br /&gt;        if (((c &amp;lt; "0") || (c &amp;gt; "9"))) return false;&lt;br /&gt;    }&lt;br /&gt;    // All characters are numbers.&lt;br /&gt;    return true;&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;input type="text" id="txtDate" onfocusout="return IsValidDate('txtDate','Please enter valid date');"/&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;When user enters Invalid date&lt;br /&gt;Entering 31 st for april (31/04)&lt;br /&gt;Entering in valid date format&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWY_pi0RDaI/AAAAAAAAAa0/xJKPqW-_N2c/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 296px; height: 275px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWY_pi0RDaI/AAAAAAAAAa0/xJKPqW-_N2c/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288984795346439586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Auto complete&lt;br /&gt;When user enters 30/04 then on focus out it changes to 30/04/2009 (current year)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Auto complete&lt;br /&gt;When user enters 30/04/09 then on focus out it changes to 30/04/2009 (current year)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWY_p1IPDFI/AAAAAAAAAa8/GOWxGBjtiOs/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 259px; height: 159px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWY_p1IPDFI/AAAAAAAAAa8/GOWxGBjtiOs/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288984800262032466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8954657647363495131?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8954657647363495131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8954657647363495131' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8954657647363495131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8954657647363495131'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/auto-complete-date-using-javascript_11.html' title='Auto complete date using JavaScript'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SWY_pi0RDaI/AAAAAAAAAa0/xJKPqW-_N2c/s72-c/1.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-6113246553840093636</id><published>2009-01-10T19:30:00.000+05:30</published><updated>2009-01-10T19:31:19.517+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Password encryption .NET?</title><content type='html'>User login credentials (Especially password) need to be encrypted such that even data base administrator who handles data base cannot find the exact password as it is stored in encrypted format.&lt;br /&gt;System.Security.Cryptography provided by .NET frame work helps to encrypt/decrypt text, provided with a static key base lined or hard coded to do so.&lt;br /&gt;I am considering below as my static key to encrypt/decrypt text&lt;br /&gt;string Key = "3&amp;hj;@asdj^";&lt;br /&gt;For encrypting &lt;br /&gt;           public string EncryptMessage(string plainMessage)&lt;br /&gt;        {&lt;br /&gt;            TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();&lt;br /&gt;            des.IV = new byte[8];&lt;br /&gt;            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Key, new byte[0]);&lt;br /&gt;            des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, new byte[8]);&lt;br /&gt;            MemoryStream ms = new MemoryStream(plainMessage.Length * 2);&lt;br /&gt;            CryptoStream encStream = new CryptoStream(ms, des.CreateEncryptor(),&lt;br /&gt;            CryptoStreamMode.Write);&lt;br /&gt;            byte[] plainBytes = Encoding.UTF8.GetBytes(plainMessage);&lt;br /&gt;            encStream.Write(plainBytes, 0, plainBytes.Length);&lt;br /&gt;            encStream.FlushFinalBlock();&lt;br /&gt;            byte[] encryptedBytes = new byte[ms.Length];&lt;br /&gt;            ms.Position = 0;&lt;br /&gt;            ms.Read(encryptedBytes, 0, (int)ms.Length);&lt;br /&gt;            encStream.Close();&lt;br /&gt;            return Convert.ToBase64String(encryptedBytes);&lt;br /&gt;        }&lt;br /&gt;For Decrypting &lt;br /&gt;      public string DecryptMessage(string encryptedBase64)&lt;br /&gt;        {&lt;br /&gt;            TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();&lt;br /&gt;            des.IV = new byte[8];&lt;br /&gt;            PasswordDeriveBytes pdb = new PasswordDeriveBytes(Key, new byte[0]);&lt;br /&gt;            des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, new byte[8]);&lt;br /&gt;            byte[] encryptedBytes = Convert.FromBase64String(encryptedBase64);&lt;br /&gt;            MemoryStream ms = new MemoryStream(encryptedBase64.Length);&lt;br /&gt;            CryptoStream decStream = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);&lt;br /&gt;            decStream.Write(encryptedBytes, 0, encryptedBytes.Length);&lt;br /&gt;            decStream.FlushFinalBlock();&lt;br /&gt;            byte[] plainBytes = new byte[ms.Length];&lt;br /&gt;            ms.Position = 0;&lt;br /&gt;            ms.Read(plainBytes, 0, (int)ms.Length);&lt;br /&gt;            decStream.Close();&lt;br /&gt;            return System.Text.Encoding.UTF8.GetString(plainBytes);&lt;br /&gt;        }&lt;br /&gt;Honestly speaking, I am not sure and clear about each line of code what does it do very specifically but shall make a update on this.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;Encryptor&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SWH-BK6JJZI/AAAAAAAAAVw/N0rVNu4kvY8/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 150px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWH-BK6JJZI/AAAAAAAAAVw/N0rVNu4kvY8/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287786733571220882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;Decryptor&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SWH-Bkrqc4I/AAAAAAAAAV4/uL602VxGuJ0/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 150px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWH-Bkrqc4I/AAAAAAAAAV4/uL602VxGuJ0/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287786740489810818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-6113246553840093636?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/6113246553840093636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=6113246553840093636' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6113246553840093636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6113246553840093636'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/password-encryption-net_10.html' title='Password encryption .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SWH-BK6JJZI/AAAAAAAAAVw/N0rVNu4kvY8/s72-c/1.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-1921355491314002145</id><published>2009-01-09T23:09:00.000+05:30</published><updated>2009-01-09T23:30:10.256+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Varchar Sequence Index Finder Oracle</title><content type='html'>Please refer &lt;a href="http://programmerfindings.blogspot.com/2009/01/how-to-create-varchar-sequence-in_08.html" target="_blank"&gt; how to generate varchar sequene in oracle? Prog. Findindgs.&lt;br /&gt;&lt;/a&gt; &lt;br /&gt;&lt;b&gt;As discussed in earlier post, that varchar sequence generator helps to generate character or string sequence very similar to number sequence in oracle.&lt;br /&gt;Varchar sequence: A, B, C … Z, AA, AB, AC….AZ, BA, BC …BZ…ZA, ZB… ZZ, AAA, AAB…ZZZ, AAAA…..&lt;br /&gt;This post is to do vise versa.&lt;br /&gt;That is to get the sequence index value when user gives the varchar value.&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;table style="border: 1px solid #618773; Font-family: Arial;Font-size: 11px;color: #000000;padding: 0px;text-align: left;overflow:scroll;"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:50%;’&gt;&lt;b&gt;Input&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Z&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; AZ &lt;/td&gt;&lt;td&gt;52 &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;GCPB&lt;/td&gt;&lt;td&gt;125478  &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;ZA&lt;/td&gt;&lt;td&gt;677&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;ZZZ&lt;/td&gt;&lt;td&gt;18278&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;AAAA&lt;/td&gt;&lt;td&gt;18279&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Oracle function:-&lt;br /&gt;CREATE OR REPLACE FUNCTION GetIndexOfStr(argVal VARCHAR)&lt;br /&gt;RETURN NUMBER&lt;br /&gt;IS&lt;br /&gt;tmpIndex NUMBER;&lt;br /&gt;tmpLength NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;--Getting the length of given varchar value&lt;br /&gt;tmpLength:=LENGTH(argVal);&lt;br /&gt;tmpIndex:=0;&lt;br /&gt;--Calculating the index of the given varchar value in sequence&lt;br /&gt;--A, B, C … Z, AA, AB, AC….AZ, BA, BC …BZ…ZA, ZB… ZZ, AAA, AAB…ZZZ, AAAA…..&lt;br /&gt;FOR i IN 1 .. tmpLength&lt;br /&gt;LOOP&lt;br /&gt;tmpIndex:=tmpIndex+(ASCII(SUBSTR(argVal,i,1))-64)*POWER(26,tmpLength-i);&lt;br /&gt;END LOOP;&lt;br /&gt;--returning the given varchar index in the sequence&lt;br /&gt;RETURN tmpIndex;&lt;br /&gt;END;&lt;br /&gt;Output:-&lt;br /&gt;Run below query&lt;br /&gt;&lt;b&gt;SELECT GetIndexOfStr('ZZZ') as Sequence_Index FROM dual&lt;/b&gt;&lt;br /&gt;Which will return the Index of ‘ZZZ’ in the considered varchar sequence&lt;br /&gt;A, B, C … Z, AA, AB, AC….AZ, BA, BC …BZ…ZA, ZB… ZZ, AAA, AAB…ZZZ, AAAA…..&lt;br /&gt;&lt;b&gt;Result is 18278, since Index of 'ZZZ' in the considered varchar sequence is&lt;br /&gt;18278&lt;/b&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWeL_9y2rUI/AAAAAAAAAbU/6uLnAwz2Ufg/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 96px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWeL_9y2rUI/AAAAAAAAAbU/6uLnAwz2Ufg/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5289350218405817666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-1921355491314002145?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/1921355491314002145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=1921355491314002145' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1921355491314002145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/1921355491314002145'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/oracle-varchar-sequence-index-finder.html' title='Varchar Sequence Index Finder Oracle'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SWeL_9y2rUI/AAAAAAAAAbU/6uLnAwz2Ufg/s72-c/1.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-8865377891461801433</id><published>2009-01-09T05:56:00.001+05:30</published><updated>2009-01-09T23:04:59.413+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Varchar sequence in Oracle</title><content type='html'>We know that oracle supports sequence, but it generates number type values.&lt;br /&gt;So we can use oracle sequence for specifically only to numbers.&lt;br /&gt;&lt;br /&gt;We use this sequence in triggers of a table to update the primary key value for the field of newly inserted record.&lt;br /&gt;If the primary key field is number, it is ok to use the oracle sequence.&lt;br /&gt;What to do if the primary key field is varchar? Also if requirement is to not store numbers in this primary key field.&lt;br /&gt;&lt;br /&gt;In this case we can consider sequence as follows for varchar primary key fields.&lt;br /&gt;A, B, C … Z, AA, AB, AC….AZ, BA, BC …BZ…ZA, ZB… ZZ, AAA, AAB…ZZZ, AAAA….. &lt;br /&gt;&lt;br /&gt;To generate such kind of sequence, I would like to create an oracle function which internally uses an oracle sequence and retrieves number as usual.&lt;br /&gt;But depending upon the number from sequence, it calculates the varchar sequence value based upon index.&lt;br /&gt;Look at below table which is the input and output with respect to my varchar generate sequence oracle function&lt;br /&gt;&lt;table style='border: 1px solid #618773;Font-family: Arial;Font-size: 11px;color: #000000;padding: 0px;text-align: left;overflow:scroll;'&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style=’width:50%;’&gt;&lt;b&gt;Input&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;A&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;Z&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;52&lt;/td&gt;&lt;td&gt;AZ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;125478  &lt;/td&gt;&lt;td&gt;GCPB&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;677&lt;/td&gt;&lt;td&gt;ZA&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;18278&lt;/td&gt;&lt;td&gt;ZZZ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;18279&lt;/td&gt;&lt;td&gt;AAAA&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Step 1:&lt;br /&gt;Create a sequence that starts from 1 increments by 1.&lt;br /&gt;create sequence seq_varchar start with 1 increment by 1 nocache;&lt;br /&gt;Step 2:&lt;br /&gt;&lt;br /&gt;Run the below oracle function,&lt;br /&gt;Input parameters:-&lt;br /&gt;argSeqname – Name of the oracle sequence created.&lt;br /&gt;argNextVal – Numeric value.&lt;br /&gt;       If 1 then to get next value from the oracle sequence.&lt;br /&gt;       Else to get current value from the oracle sequence  &lt;br /&gt;CREATE OR REPLACE FUNCTION Generatestr(argSeqName IN VARCHAR,argNextVal NUMBER)&lt;br /&gt;RETURN VARCHAR&lt;br /&gt;IS&lt;br /&gt;tmpNum1 NUMBER;&lt;br /&gt;tmpNum2 NUMBER;&lt;br /&gt;tmpCode VARCHAR2(800);&lt;br /&gt;argNumber NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;tmpCode:='';&lt;br /&gt;tmpNum1:=argNumber;&lt;br /&gt;IF(argNextVal=1) THEN&lt;br /&gt;EXECUTE IMMEDIATE 'select '||argSeqName||'.nextval from dual ' INTO argNumber;&lt;br /&gt;ELSE&lt;br /&gt;EXECUTE IMMEDIATE 'select '||argSeqName||'.currval from dual ' INTO argNumber;&lt;br /&gt;END IF;&lt;br /&gt;//Calculting the varchar value from the varchar sequence based upon //index from oracle sequence&lt;br /&gt;tmpNum1:=argNumber;&lt;br /&gt; IF(argNumber&gt;26) THEN&lt;br /&gt;  WHILE(tmpNum1&gt;26)&lt;br /&gt;  LOOP&lt;br /&gt;   tmpNum2:=MOD(tmpNum1,26);&lt;br /&gt;   IF(tmpNum2=0) THEN&lt;br /&gt;       tmpNum2:=26;&lt;br /&gt;   END IF;&lt;br /&gt;   tmpNum1:=FLOOR(tmpNum1/26);&lt;br /&gt;   IF(tmpNum2=26) THEN&lt;br /&gt;   tmpNum1:=tmpNum1-1;&lt;br /&gt;   END IF;&lt;br /&gt;   tmpCode:=CHR(64+tmpNum2)||tmpCode;&lt;br /&gt;  END LOOP;&lt;br /&gt;  END IF;&lt;br /&gt;  tmpCode:=CHR(64+tmpNum1)||tmpCode;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RETURN tmpCode;&lt;br /&gt;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;Step 3: &lt;br /&gt;&lt;br /&gt;Run the below sql query &lt;br /&gt;SELECT Generatestr('seq_varchar',1) AS NextValue FROM dual&lt;br /&gt;Which mean to get next value from varchar sequence&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWXmT_Oe2SI/AAAAAAAAAac/bbl_IbEH8U0/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 104px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWXmT_Oe2SI/AAAAAAAAAac/bbl_IbEH8U0/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288886568480594210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Run again &lt;br /&gt;SELECT Generatestr('seq_varchar',1) AS NextValue FROM dual&lt;br /&gt;Which mean to get next value from varchar sequence&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWXmUsnm57I/AAAAAAAAAak/4jJAxQ9eoi4/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 106px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWXmUsnm57I/AAAAAAAAAak/4jJAxQ9eoi4/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288886580665575346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Run &lt;br /&gt;SELECT Generatestr('seq_varchar',0) AS NextValue FROM dual&lt;br /&gt;Which mean to get current value from varchar sequence&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWXmVN-HxzI/AAAAAAAAAas/CsQhfnDSzoQ/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 118px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWXmVN-HxzI/AAAAAAAAAas/CsQhfnDSzoQ/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288886589618374450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Conclusion:-&lt;br /&gt;&lt;br /&gt;So the process of generating the next varchar values goes on as similar to number from oracle sequence.&lt;br /&gt;This way of generating varchar sequence is using oracle sequence to get only index, but we need to calculate the varchar value based upon Index&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-8865377891461801433?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/8865377891461801433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=8865377891461801433' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8865377891461801433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/8865377891461801433'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-create-varchar-sequence-in_08.html' title='Varchar sequence in Oracle'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SWXmT_Oe2SI/AAAAAAAAAac/bbl_IbEH8U0/s72-c/1.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-439610555591666843</id><published>2009-01-07T21:25:00.001+05:30</published><updated>2009-01-07T21:33:55.207+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Alert box in ASP.NET from Code behind page</title><content type='html'>We are aware that JavaScript supports alert box to display information to the user.&lt;br /&gt;&lt;br /&gt;When we develop web applications in Asp.Net there could be situations to show message in alert box to user when and there required.&lt;br /&gt;Displaying alert box could be of 2 types.&lt;br /&gt;To explain about this let us consider a form, which is to create a user account and generate user id (system generated).&lt;br /&gt;1)&lt;b&gt; Display alert box using java script in .aspx page&lt;/b&gt;&lt;br /&gt;Let us consider validation in a form.&lt;br /&gt;When user clicks on save button with out entering mandatory fields, we display alert box immediately with out post backing page.&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;b&gt; Validation for mandatory fields. Checking before submitting the page to server. (Client side validation with alert box)&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWTQoIaKCFI/AAAAAAAAAZ8/QDEF_4uvnho/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 226px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWTQoIaKCFI/AAAAAAAAAZ8/QDEF_4uvnho/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288581250310342738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;b&gt; Validation for numeric validation (Age). Checking before submitting the page to server. (Client side validation with alert box)&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWTQoSndm5I/AAAAAAAAAaE/LhDHpMTLyTQ/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 267px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWTQoSndm5I/AAAAAAAAAaE/LhDHpMTLyTQ/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288581253050506130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;2) &lt;b&gt;Display alert box from code behind page&lt;/b&gt;&lt;br /&gt;    After saving the data provided by user in the form, we may need to display the generated ID after saving the record with an alert box from code behind page.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Displaying alert box from code behind page after the record is saved successfully&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SWTQoinhgKI/AAAAAAAAAaM/KqUWbAHGYso/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 283px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SWTQoinhgKI/AAAAAAAAAaM/KqUWbAHGYso/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288581257345728674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;To display alert box from code behind page, we can use “IcallbackEventHandler” interface and implement “GetCallbackResult”  and “RaiseCallbackEvent” methods.&lt;br /&gt;&lt;br /&gt;Please have glance at the source code below.&lt;br /&gt;&lt;b&gt;Please copy below source code into your local machine, to understand comments written against each statement to display alert box from server side and client side&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Aspx page:-&lt;/b&gt;&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="AlertBox.aspx.cs" Inherits="AlertBox" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Alert box&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    //javascript function to validate user provided data in the forum&lt;br /&gt;    function validate(txtName,txtAge)&lt;br /&gt;    {&lt;br /&gt;        if(document.getElementById(txtName).value.length==0 || document.getElementById(txtAge).value.length==0)&lt;br /&gt;        {&lt;br /&gt;        alert('All fields are mandatory');&lt;br /&gt;        return false;&lt;br /&gt;        }&lt;br /&gt;        if(!isNumber(document.getElementById(txtAge).value))&lt;br /&gt;        {&lt;br /&gt;        alert('Age is numeric');&lt;br /&gt;        document.getElementById(txtAge).focus();&lt;br /&gt;        return false;&lt;br /&gt;        }&lt;br /&gt;        return true;&lt;br /&gt;    }&lt;br /&gt;    function isNumber(vl)&lt;br /&gt;    {&lt;br /&gt;    var nums='1234567890';&lt;br /&gt;    var chr='';&lt;br /&gt;        for(i=0;i&amp;lt;vl.length;i++)&lt;br /&gt;        {&lt;br /&gt;         chr=vl.charAt(i);&lt;br /&gt;         if(nums.indexOf(chr)==-1)&lt;br /&gt;          return false;&lt;br /&gt;        }&lt;br /&gt;        return true;&lt;br /&gt;    }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    //Function used by code behind page through ICallBackEventHandler to display &lt;br /&gt;    //alert box&lt;br /&gt;        function DisplayAlert(response,context)&lt;br /&gt;        {&lt;br /&gt;        alert(response);&lt;br /&gt;        }&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;link href="Styles/Stylesheet.css" rel="stylesheet" type="text/css" /&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;    &amp;lt;table id="maintable"&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;asp:TextBox ID="txtName" runat="server"&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;Age&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;asp:TextBox ID="txtAge" runat="server"&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;Save&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="Save" CssClass="cssbutton" /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;/tr&amp;gt;&lt;br /&gt;    &amp;lt;/table&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;b&gt;Code behind page :-&lt;/b&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;public partial class AlertBox : System.Web.UI.Page,ICallbackEventHandler&lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        if (!Page.IsPostBack)&lt;br /&gt;        {&lt;br /&gt;            //Client side validation for mandatory and numeric age (in aspx page)&lt;br /&gt;            btnSave.Attributes.Add("onclick", "javascript:return validate('" + txtName.ClientID + "','" + txtAge.ClientID + "');");&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    protected void btnSave_Click(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        Alert("Saved sucessfully, ID = 1");&lt;br /&gt;    }&lt;br /&gt;    public string alertCallBack;&lt;br /&gt;    //Alert box from code behind page&lt;br /&gt;    void Alert(string strMessage)&lt;br /&gt;    {&lt;br /&gt;        //This creates a script or method call statement, which calls "DisplayAlert" javascript function available in .aspx page.&lt;br /&gt;        //When this script is registered, then "RaiseCallbackEvent" function available in code behind page (method implemented through ICallbackEventHandler)&lt;br /&gt;        // is called and response from "GetCallbackResult" function (method implemented through ICallbackEventHandler) is sent as parameter to "DisplayAlert" javascript function available in .aspx page.&lt;br /&gt;        //"DisplayAlert" javascript function helps to display alert box in the browser&lt;br /&gt;&lt;br /&gt;       //This kind of registering script is using Asynchronous javascript technique but not Ajax exactly&lt;br /&gt;&lt;br /&gt;        alertCallBack = Page.ClientScript.GetCallbackEventReference(this, "'" + strMessage + "'".Replace("\n", " "), "DisplayAlert", "");&lt;br /&gt;        string strScript;&lt;br /&gt;        strScript = "&lt;script language=\"javascript\"&gt; " + alertCallBack + ";&lt;/script&gt;";&lt;br /&gt;        ClientScript.RegisterStartupScript(typeof(Page), "AlertBox", strScript);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    #region ICallbackEventHandler Members&lt;br /&gt;    string strReturnValue;&lt;br /&gt;    public string GetCallbackResult()&lt;br /&gt;    {&lt;br /&gt;        //returning the meesage assigned to strReturnValue variable to DisplayAlert javascript function&lt;br /&gt;        return strReturnValue;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void RaiseCallbackEvent(string eventArgument)&lt;br /&gt;    {&lt;br /&gt;        //Assigning the recieved message to a varaible (strReturnValue) that will be returned by GetCallbackResult function&lt;br /&gt;        strReturnValue = eventArgument;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    #endregion&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-439610555591666843?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/439610555591666843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=439610555591666843' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/439610555591666843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/439610555591666843'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/alert-box-in-aspnet-from-code-behind.html' title='Alert box in ASP.NET from Code behind page'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SWTQoIaKCFI/AAAAAAAAAZ8/QDEF_4uvnho/s72-c/1.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2059698367091408711</id><published>2009-01-07T15:52:00.001+05:30</published><updated>2009-01-07T20:28:53.165+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to draw rectangle band using javascript?</title><content type='html'>It is possible to draw a rectangle rubber band (dynamic div tag) on browser using java script.&lt;br /&gt;&lt;br /&gt;The rubber band (div) first starts with its top and left as fixed based upon first mouse down.&lt;br /&gt;Upon mouse move the width and height of the rubber band (div) is calculated and updated dynamically.&lt;br /&gt;Say suppose x1 and y1 is the first mouse down coordinates, x2 and y2 need to be changed dynamically based upon user mouse move upon the browser.&lt;br /&gt;If x2 and y2 are the current mouse move coordinates then&lt;br /&gt;Width of the rubber band (div) = (x2&gt;x1)? (x2-x1) :( x1-x2)&lt;br /&gt;Height of the rubber band (div) = (y2&gt;y1)? (y2-y1) :(y1-y2)&lt;br /&gt;&lt;br /&gt;On mouse up need to not consider the mouse move there after, as rectangle band is created.&lt;br /&gt;Copy the below html page and find the flexibility of creating a rectangle rubber band.&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Graphics&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    var bnding=false;&lt;br /&gt;    var strtX;&lt;br /&gt;    var strtY;&lt;br /&gt;function strtBand()&lt;br /&gt;{&lt;br /&gt;bnding=true;&lt;br /&gt; var x=event.x;&lt;br /&gt; var y=event.y;&lt;br /&gt; document.getElementById('divBand').style.left=x;&lt;br /&gt; document.getElementById('divBand').style.top=y;&lt;br /&gt; document.getElementById('divBand').style.width=0;&lt;br /&gt; document.getElementById('divBand').style.height=0;&lt;br /&gt; strtX=x;&lt;br /&gt; strtY=y;&lt;br /&gt; bnding=true;&lt;br /&gt;}&lt;br /&gt;function moveBand()&lt;br /&gt;{&lt;br /&gt;if(!bnding)&lt;br /&gt;return;&lt;br /&gt; var x=event.x;&lt;br /&gt; var y=event.y;&lt;br /&gt; if(x&amp;gt;strtX)&lt;br /&gt; {&lt;br /&gt; document.getElementById('divBand').style.left=strtX;&lt;br /&gt; document.getElementById('divBand').style.width=x-strtX;&lt;br /&gt; }&lt;br /&gt; if(y&amp;gt;strtY)&lt;br /&gt; {&lt;br /&gt; document.getElementById('divBand').style.top=strtY;&lt;br /&gt; document.getElementById('divBand').style.height=y-strtY;&lt;br /&gt; }&lt;br /&gt;  if(x&amp;lt;=strtX)&lt;br /&gt; {&lt;br /&gt; document.getElementById('divBand').style.left=x;&lt;br /&gt; document.getElementById('divBand').style.width=strtX-x;&lt;br /&gt; }&lt;br /&gt; if(y&amp;lt;=strtY)&lt;br /&gt; {&lt;br /&gt; document.getElementById('divBand').style.top=y;&lt;br /&gt; document.getElementById('divBand').style.height=strtY-y;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;function kyPress()&lt;br /&gt;{&lt;br /&gt;    if(event.keyCode==27)&lt;br /&gt;    {&lt;br /&gt;    stopBand();&lt;br /&gt;    document.getElementById('divBand').style.width=0;&lt;br /&gt;    document.getElementById('divBand').style.height=0;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;function stopBand()&lt;br /&gt;{&lt;br /&gt;bnding=false;&lt;br /&gt;}&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;    &lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body onmouseup="stopBand();" onmousedown="strtBand();" onmousemove="moveBand();" onkeypress="kyPress();"&amp;gt;&lt;br /&gt;&amp;lt;table style="width:100%;height:100%"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="divBand" style="position:absolute;background:lightyellow;border:1px solid gray;"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SWIvofswnHI/AAAAAAAAAWI/66a_ohXFFBk/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 255px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SWIvofswnHI/AAAAAAAAAWI/66a_ohXFFBk/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287841285236890738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2059698367091408711?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2059698367091408711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2059698367091408711' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2059698367091408711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2059698367091408711'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-draw-rectangle-band-using_07.html' title='How to draw rectangle band using javascript?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SWIvofswnHI/AAAAAAAAAWI/66a_ohXFFBk/s72-c/1.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2224256256241697468</id><published>2009-01-06T16:34:00.000+05:30</published><updated>2009-01-08T17:43:03.315+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to handle double click event of a list box in ASP.NET?</title><content type='html'>We can find asp:listbox  has following events, where double click event is not available to post back the page.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWM62bCxq-I/AAAAAAAAAW4/qXrlqamDDro/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 252px; height: 231px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWM62bCxq-I/AAAAAAAAAW4/qXrlqamDDro/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288135094109842402" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;But we can handle the double click event of the list box through java script.&lt;br /&gt;Ex:-&lt;br /&gt;&lt;br /&gt;    &amp;lt;asp:ListBox ID="lstBox" runat="server" Width="16%"  CssClass="inputtext" SelectionMode="Multiple" ondblclick="ListBox1_DoubleClick()"&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;1&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;2&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;3&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;4&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;    &amp;lt;/asp:ListBox&amp;gt;&lt;br /&gt;&lt;br /&gt;here we can find ondblclick="ListBox1_DoubleClick()”, where “ListBox1_DoubleClick()" javascript function is called when user double clicks on any item in the list box.&lt;br /&gt;&lt;br /&gt;In below example, I am using a hidden type which helps to work as a flag that says list box item is double clicked.&lt;br /&gt;&lt;br /&gt;So when user double clicks on any one of the item, I will assign a flag to the hidden type as “doubleclicked" and postback or submit page.&lt;br /&gt; While reading the value from this hidden parameter, if I find the value saying as “doubleclicked", then I can confirm that it is double click event of the list box and perform required action.&lt;br /&gt;&lt;br /&gt; Aspx page:-&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;List box&amp;lt;/title&amp;gt;&lt;br /&gt;        &amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;    function ListBox1_DoubleClick() {&lt;br /&gt;   document.forms[0].ListBox1Hidden.value = "doubleclicked";&lt;br /&gt;       document.forms[0].submit();&lt;br /&gt;    }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;asp:ListBox ID="lstBox" runat="server" Width="16%"  CssClass="inputtext" SelectionMode="Multiple" ondblclick="ListBox1_DoubleClick()"&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;1&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;2&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;3&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;4&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;        &amp;lt;asp:ListItem&amp;gt;&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;    &amp;lt;/asp:ListBox&amp;gt;&lt;br /&gt;     &amp;lt;input type="hidden" name="ListBox1Hidden" /&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;Code behind page:-&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;public partial class Default2 : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        if (Request.Params["ListBox1Hidden"] != null &amp;&amp; (string)Request.Params["ListBox1Hidden"] == "doubleclicked")&lt;br /&gt;        {&lt;br /&gt;            //This means It was double click&lt;br /&gt;            Response.Write("Double Click was fired selected item is "&lt;br /&gt;            + lstBox.SelectedItem.Text);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;output:-&lt;br /&gt;When user double clicks on any item, I am writing the selected item’s text.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SWM62RovIGI/AAAAAAAAAXA/E9LtItBHGm8/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 306px; height: 230px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SWM62RovIGI/AAAAAAAAAXA/E9LtItBHGm8/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5288135091584704610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2224256256241697468?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2224256256241697468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2224256256241697468' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2224256256241697468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2224256256241697468'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-handle-double-click-event-of.html' title='How to handle double click event of a list box in ASP.NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SWM62bCxq-I/AAAAAAAAAW4/qXrlqamDDro/s72-c/1.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-467533854607633787</id><published>2009-01-06T14:55:00.000+05:30</published><updated>2009-01-07T21:53:36.366+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Generate Random Password Oracle</title><content type='html'>When user tries to reset password, new password should be generated randomly which is always independent with respect to user details.&lt;br /&gt;&lt;br /&gt;Below oracle function returns such randomly generated password of specific length.&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION generatePassword(LENGTH IN NUMBER)&lt;br /&gt;RETURN VARCHAR&lt;br /&gt;IS&lt;br /&gt;tmpChr VARCHAR2(1);&lt;br /&gt;tmpPswd VARCHAR2(32767);&lt;br /&gt;BEGIN&lt;br /&gt;--Number of loops equal to the length specified&lt;br /&gt;FOR i IN 1 .. LENGTH&lt;br /&gt;LOOP&lt;br /&gt;--1. Generate a random integer between 48 and 122 because to generate string that&lt;br /&gt;--has alphanumeric charaters and few special characters availbale on key board&lt;br /&gt;--2. Get the caharacter whose ascii is equal to the generated ascii code&lt;br /&gt;SELECT CHR(ROUND(dbms_random.value(48,122),0)) INTO tmpChr FROM dual;&lt;br /&gt;--Appending each randomly generated character&lt;br /&gt;tmpPswd:=tmpPswd||tmpChr;&lt;br /&gt;END LOOP;&lt;br /&gt;--returning the final created random password&lt;br /&gt;RETURN tmpPswd;&lt;br /&gt;END;&lt;br /&gt;After creating the above function call the function with 10 as input parameter which generates a text or password of length 10.&lt;br /&gt;Run query:-&lt;br /&gt;&lt;br /&gt;select generatePassword(10) as password from dual&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;br /&gt;rZdjSZo7eg&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWTXANlpMHI/AAAAAAAAAaU/_SvQ3hvdtLY/s1600-h/1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 234px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWTXANlpMHI/AAAAAAAAAaU/_SvQ3hvdtLY/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5288588261087326322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-467533854607633787?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/467533854607633787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=467533854607633787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/467533854607633787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/467533854607633787'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/generate-random-password-oracle_06.html' title='Generate Random Password Oracle'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SWTXANlpMHI/AAAAAAAAAaU/_SvQ3hvdtLY/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3182380439292076133</id><published>2009-01-05T22:50:00.001+05:30</published><updated>2009-01-08T17:30:25.414+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Simple advertisement in web page?</title><content type='html'>We can find few web sites that display simple advertisements in a small rectangular box and moves across the page.&lt;br /&gt;I would like to share this code which does the same.&lt;br /&gt;For advertising such box we need to create an image file that is encapsulated with in that rectangular box.&lt;br /&gt;I am creating a custom image created by my self in paint brush to advertise this blog “Programmer findings”.&lt;br /&gt;My Advertisement image&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWJBrG3aOyI/AAAAAAAAAWo/N21H2s43uGE/s1600-h/myAdd.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 276px; height: 154px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWJBrG3aOyI/AAAAAAAAAWo/N21H2s43uGE/s320/myAdd.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287861121319582498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Saving the above image as “myAdd.bmp”.&lt;br /&gt;Close advertisement image&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWJBqMrabTI/AAAAAAAAAWg/vd4hNf3J8Zo/s1600-h/Close.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 12px; height: 12px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWJBqMrabTI/AAAAAAAAAWg/vd4hNf3J8Zo/s320/Close.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5287861105700007218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Saving the above image as “Close.gif”.&lt;br /&gt;Html page:-&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Advertisement&amp;lt;/title&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body &amp;gt;&lt;br /&gt;&amp;lt;table style="width:100%;height:100%"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;h2&amp;gt;A sample web site just for demo. Assume this web site is related to .NET material or technical help.&lt;br /&gt;So this web page may need to show different advertisments,here advertisement is regarding http://programmerfindings.blogspot.com/ blog.&lt;br /&gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;Observe the advertisement that is moving accross the browser&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;div id="divAdd1" style="position:absolute;background:lightyellow;border:1px solid gray;" onmouseover="pauseAdd();this.style.cursor='hand';" onclick="clk('http://programmerfindings.blogspot.com/');" &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt; &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt; var addx=0;&lt;br /&gt; var addy=0;&lt;br /&gt; function displayAdv(imgUrl,ht,wd)&lt;br /&gt; {&lt;br /&gt; document.getElementById('divAdd1').style.display='block';&lt;br /&gt; document.getElementById('divAdd1').style.height=ht;&lt;br /&gt; document.getElementById('divAdd1').style.width=wd;&lt;br /&gt; document.getElementById('divAdd1').style.top=addy;&lt;br /&gt; document.getElementById('divAdd1').style.left=addx;&lt;br /&gt; var cls="&amp;lt;img src='Images/Close.gif'; onclick='stopAdd();'/&amp;gt;";&lt;br /&gt; var img="&amp;lt;img src='"+imgUrl+"';/&amp;gt;";&lt;br /&gt; document.getElementById('divAdd1').innerHTML="&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;"+cls+"&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;td&amp;gt;"+img+"&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;";&lt;br /&gt;  newx=addx+5;&lt;br /&gt; newy=addy+5;&lt;br /&gt; moveAdd();&lt;br /&gt; }&lt;br /&gt; var newx;&lt;br /&gt; var newy;&lt;br /&gt; var drctDown=true;&lt;br /&gt; var tmr;&lt;br /&gt; function moveAdd()&lt;br /&gt; {  &lt;br /&gt; newx=newx+10;&lt;br /&gt; newy=newy+10;&lt;br /&gt; if(drctDown)&lt;br /&gt; {&lt;br /&gt;    if(newy&amp;gt;=500 &amp;&amp; newx&amp;gt;=500)&lt;br /&gt;    {&lt;br /&gt;        newx=0;&lt;br /&gt;        newy=0;&lt;br /&gt;        drctDown=true;&lt;br /&gt;    }&lt;br /&gt;    else if(newy&amp;gt;=500)&lt;br /&gt;    {&lt;br /&gt;     drctDown=false;&lt;br /&gt;    }&lt;br /&gt;     else if(newx&amp;gt;=500)&lt;br /&gt;    {&lt;br /&gt;        newx=0;&lt;br /&gt;        newy=0;&lt;br /&gt;        drctDown=true;&lt;br /&gt;    }&lt;br /&gt; }&lt;br /&gt; if(!drctDown)&lt;br /&gt; {&lt;br /&gt;  newy=newy-10;&lt;br /&gt;  if(newy&amp;lt;=0 &amp;&amp; newx&amp;lt;=0)&lt;br /&gt;    {&lt;br /&gt;        newx=0;&lt;br /&gt;        newy=0;&lt;br /&gt;        drctDown=true;&lt;br /&gt;    }&lt;br /&gt;  if(newy&amp;lt;=0)&lt;br /&gt;  {&lt;br /&gt;   newy=0;&lt;br /&gt;   drctDown=true;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;  document.getElementById('divAdd1').style.top=newy;&lt;br /&gt; document.getElementById('divAdd1').style.left=newx;&lt;br /&gt; tmr=setTimeout("moveAdd();",200);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function stopAdd()&lt;br /&gt; {&lt;br /&gt; document.getElementById('divAdd1').innerHTML='';&lt;br /&gt; document.getElementById('divAdd1').style.display='none';&lt;br /&gt; clearTimeout(tmr);&lt;br /&gt; }&lt;br /&gt; function pauseAdd()&lt;br /&gt; { &lt;br /&gt; clearTimeout(tmr);&lt;br /&gt; }&lt;br /&gt; function clk(url)&lt;br /&gt; {&lt;br /&gt; stopAdd();&lt;br /&gt;  window.open(url);&lt;br /&gt; }&lt;br /&gt; displayAdv('myAdd.bmp','100','100');&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;When user places mouse over the advertisement box it pauses the moving advertisement box and when user clicks it opens the “Programmer findings blog site”.&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__bty7fMcKAc/SWJBoysWctI/AAAAAAAAAWQ/ntb3-jPD9ZE/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SWJBoysWctI/AAAAAAAAAWQ/ntb3-jPD9ZE/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287861081544749778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__bty7fMcKAc/SWJBpnzxEgI/AAAAAAAAAWY/gEkXPfuWxTM/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWJBpnzxEgI/AAAAAAAAAWY/gEkXPfuWxTM/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287861095802933762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-3182380439292076133?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/3182380439292076133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=3182380439292076133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3182380439292076133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3182380439292076133'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/simple-advertisement-in-web-page.html' title='Simple advertisement in web page?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SWJBrG3aOyI/AAAAAAAAAWo/N21H2s43uGE/s72-c/myAdd.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3015943455508263949</id><published>2009-01-05T16:42:00.000+05:30</published><updated>2009-01-05T16:55:17.885+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>DHTML (Dynamic HTML)</title><content type='html'>Dynamically or instantly updating/appending/removing html content is said to be as dynamic html.&lt;br /&gt;A normal html page which we prepare or do is said to be html but it is not dynamic and always static.&lt;br /&gt;In case of dynamic html, file up loader in web application should be capable enough of uploading any number of files by the user instead of specific limit. In such case we will provide a basic limit of either 2 or 3 file up loaders as default in the interface and also providing a button to “add more files”.&lt;br /&gt;When user clicks on the button we need to dynamically add some more file up loaders.&lt;br /&gt;There could be many cases not only specific to file up loaders but also to dynamically show multiple text boxes, check boxes, radio buttons, etc….&lt;br /&gt;Please copy the below code and enjoy dynamic html&lt;br /&gt;&lt;br /&gt;Below java script code is to allow user to design his own html component like button, anchor, text box, marquee, file upload on his own.&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;DHTML Demo&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;table id="tblUploader"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;select id="slt_Cmp" onchange="Content();"&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected" value="1"&amp;gt;Create Text box&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected" value="2"&amp;gt;Crate Button&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected" value="3"&amp;gt;Create Marquee&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected" value="4"&amp;gt;Create File upload&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected" value="5"&amp;gt;Create Anchor&amp;lt;/option&amp;gt;&lt;br /&gt; &amp;lt;/select&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Text&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;select id="slt_Text" onchange="Content();"&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected" value="1"&amp;gt;Hi&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected" value="2"&amp;gt;Hello&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;/select&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Click&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;select id="slt_Clk" onchange="Content();"&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected"&amp;gt;Good Morning&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option selected="selected"&amp;gt;Good Evening&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;/select&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Component&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span id="spn_Content"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    function Content()&lt;br /&gt;    {    &lt;br /&gt;    var cmp=document.getElementById('slt_Cmp').value;&lt;br /&gt;    var txt=document.getElementById('slt_Text').options[document.getElementById('slt_Text').selectedIndex].text;&lt;br /&gt;    var clk=document.getElementById('slt_Clk').options[document.getElementById('slt_Clk').selectedIndex].text;&lt;br /&gt;    document.getElementById('slt_Clk').disabled=false;&lt;br /&gt;    document.getElementById('slt_Text').disabled=false;&lt;br /&gt;     var cmpnent='';&lt;br /&gt;     switch(cmp)&lt;br /&gt;     {&lt;br /&gt;     case "1" : cmpnent="&amp;lt;input type='text' id='txt' value='"+txt+"'/&amp;gt;";&lt;br /&gt;     document.getElementById('slt_Clk').disabled=true;&lt;br /&gt;     break;&lt;br /&gt;     case "2" : cmpnent="&amp;lt;input type='button' id='btn' value='"+txt+"' onclick=\"alert('"+clk+"');return false;\"/&amp;gt;";&lt;br /&gt;     break;&lt;br /&gt;     case "3" : cmpnent="&amp;lt;marquee&amp;gt; "+txt+"&amp;lt;/marquee&amp;gt;";&lt;br /&gt;     document.getElementById('slt_Clk').disabled=true;&lt;br /&gt;     break;&lt;br /&gt;     case "4" : cmpnent="&amp;lt;input type='file' id='flp'/&amp;gt;";&lt;br /&gt;     document.getElementById('slt_Clk').disabled=true;&lt;br /&gt;     document.getElementById('slt_Text').disabled=true;&lt;br /&gt;     break;&lt;br /&gt;     case "5" : cmpnent="&amp;lt;a id='a' onclick=\"alert('"+clk+"');return false;\" href='#'&amp;gt;"+txt+"&amp;lt;/a&amp;gt;" ;&lt;br /&gt;     break;&lt;br /&gt;     }     &lt;br /&gt;          document.getElementById('spn_Content').innerHTML=cmpnent;     &lt;br /&gt;    }&lt;br /&gt;    Content();&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;table style='width100%'&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style='width:20%'&gt;User selecting to create anchor tag&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWHtDgCFcRI/AAAAAAAAAVY/AXN_pDzuRhg/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 300px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWHtDgCFcRI/AAAAAAAAAVY/AXN_pDzuRhg/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287768081903743250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;User selecting to create button&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__bty7fMcKAc/SWHtDlnhnjI/AAAAAAAAAVg/X6M0Oi18u5c/s1600-h/2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 300px;" src="http://3.bp.blogspot.com/__bty7fMcKAc/SWHtDlnhnjI/AAAAAAAAAVg/X6M0Oi18u5c/s320/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287768083402956338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;User selecting to create marquee&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__bty7fMcKAc/SWHtD9xWqeI/AAAAAAAAAVo/hvHtvnJy2Y0/s1600-h/3.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 304px; height: 212px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SWHtD9xWqeI/AAAAAAAAAVo/hvHtvnJy2Y0/s320/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5287768089886632418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-3015943455508263949?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/3015943455508263949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=3015943455508263949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3015943455508263949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3015943455508263949'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/dhtml-dynamic-html.html' title='DHTML (Dynamic HTML)'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__bty7fMcKAc/SWHtDgCFcRI/AAAAAAAAAVY/AXN_pDzuRhg/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3914098215658558971</id><published>2009-01-04T19:12:00.000+05:30</published><updated>2009-01-09T22:40:51.878+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Html Encode and Decode in .NET?</title><content type='html'>&lt;script language='javascript'&gt;alert('Hi friends an intresting post regarding html encode and decode');&lt;/script&gt;&lt;br /&gt;It is required some times to encode or decode the html contents.&lt;br /&gt;Let us consider a label to which a java script code is assigned as text or content.&lt;br /&gt;&lt;br /&gt;If we say &lt;br /&gt;Aspx page:-&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="HtmlEncode.aspx.cs" Inherits="HtmlEncode" ValidateRequest="false" %&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;    &amp;lt;asp:Label ID="lblText" runat="server" &amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Code behind page:-&lt;br /&gt;&lt;br /&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        if (!Page.IsPostBack)&lt;br /&gt;        {&lt;br /&gt;   lblText.Text = "&amp;lt;script language='javascript'&amp;gt;alert('Hi friends an intresting post regarding html encode and decode');&amp;lt;/script&amp;gt";&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Output:- &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/SWC9DU8as-I/AAAAAAAAAVI/ea0nJLBAUC8/s1600-h/1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SWC9DU8as-I/AAAAAAAAAVI/ea0nJLBAUC8/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5287433827392336866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Actually expected result is that, the label should display the java script code as text, but the output is executed output of the java script function since label behaves as browser.&lt;br /&gt;So to eradicate this we should encode the text before assigning to label. &lt;br /&gt;Actual text =&amp;lt;script language='javascript'&amp;gt;alert('Hi friends an intresting post regarding html encode and decode');&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;So when we encode the text content before rendering to label, the content could be again decoded to display the text as expected instead of exceting the script.&lt;br /&gt;Output after html encoding &lt;br /&gt;Code behind page :-&lt;br /&gt;   protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        lblData.Text = Server.HtmlEncode("&amp;lt;script language='javascript'&amp;gt;alert('Hi friends an intresting post regarding html encode and decode');&amp;lt;/script&amp;gt");&lt;br /&gt;    }&lt;br /&gt;Output :-&lt;br /&gt; &lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SWC9EnZrH6I/AAAAAAAAAVQ/g_of4awB2lQ/s1600-h/2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 146px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SWC9EnZrH6I/AAAAAAAAAVQ/g_of4awB2lQ/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5287433849526755234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-3914098215658558971?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/3914098215658558971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=3914098215658558971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3914098215658558971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/3914098215658558971'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/html-encode-and-decode-in-net.html' title='Html Encode and Decode in .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__bty7fMcKAc/SWC9DU8as-I/AAAAAAAAAVI/ea0nJLBAUC8/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-4482184889770328769</id><published>2009-01-03T04:53:00.001+05:30</published><updated>2009-01-03T04:56:19.144+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to do paging in grid view .NET?</title><content type='html'>There could be many records from data source that needs to be rendered in grid view.&lt;br /&gt;&lt;br /&gt;In such case, it does not look good to load all records in one page which gives a very long vertical scroll bar.&lt;br /&gt;Also loading all records at once through grid view takes more time to render content onto browser.&lt;br /&gt;&lt;br /&gt;In such case there is an option saying AllowPaging="true", which enables paging option.&lt;br /&gt;PageSize atrribute is to set the total records that has to be displayed in each page.&lt;br /&gt;OnPageIndexChanging event has to be handled, such that each time when user clicks on specific page index corresponding indexed records has to be binded.&lt;br /&gt;This can be done by just specifying the page index of the grid.&lt;br /&gt;&lt;br /&gt;Aspx page :-&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Paging&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;link href="Styles/Stylesheet.css" rel="stylesheet" type="text/css" /&amp;gt;&lt;br /&gt;    &lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;    &amp;lt;asp:GridView ID="grdData" runat="server" CssClass="grid_td" Width="40%" AutoGenerateColumns="false" OnRowDataBound="grdData_RowDataBound" AllowPaging="true" PageSize="4" OnPageIndexChanging="grdData_PageIndexChanging" &amp;gt;&lt;br /&gt;    &amp;lt;Columns&amp;gt;&lt;br /&gt;    &amp;lt;asp:TemplateField&amp;gt;&lt;br /&gt;    &amp;lt;HeaderTemplate &amp;gt;Name&amp;lt;/HeaderTemplate&amp;gt;&lt;br /&gt;    &amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;    &amp;lt;asp:Label ID="lblName" Text='&amp;lt;%#Eval("Name")%&amp;gt;' runat="server"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;    &amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;    &amp;lt;/asp:TemplateField&amp;gt;&lt;br /&gt;    &amp;lt;asp:TemplateField&amp;gt;&lt;br /&gt;    &amp;lt;HeaderTemplate&amp;gt;Click&amp;lt;/HeaderTemplate&amp;gt;&lt;br /&gt;    &amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;    &amp;lt;asp:LinkButton ID="lnk" runat="server"&amp;gt;Link&amp;lt;/asp:LinkButton&amp;gt;&lt;br /&gt;    &amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;    &amp;lt;/asp:TemplateField&amp;gt;&lt;br /&gt;    &amp;lt;/Columns&amp;gt;&lt;br /&gt;    &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;    &lt;br /&gt;    &lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Code behind page:-&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;public partial class Default2 : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        if (!Page.IsPostBack)&lt;br /&gt;        {&lt;br /&gt;            BindGrid();            &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    private void BindGrid()&lt;br /&gt;    {&lt;br /&gt;        DataTable dt = new DataTable();&lt;br /&gt;        dt.Columns.Add("Name");&lt;br /&gt;        DataRow dr = null;&lt;br /&gt;        for (int i = 1; i &lt;= 10; i++)&lt;br /&gt;        {&lt;br /&gt;            dr = dt.NewRow();&lt;br /&gt;            dr["Name"] = i.ToString();&lt;br /&gt;            dt.Rows.Add(dr);&lt;br /&gt;        }&lt;br /&gt;        grdData.DataSource = dt;&lt;br /&gt;        grdData.DataBind();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    //Row data bound event function&lt;br /&gt;    protected void grdData_RowDataBound(object sender, GridViewRowEventArgs e)&lt;br /&gt;    {&lt;br /&gt;        //For each row from data source when bounded to grid this event is raised&lt;br /&gt;        LinkButton lnk = e.Row.FindControl("lnk") as LinkButton;&lt;br /&gt;        Label lblName = e.Row.FindControl("lblName") as Label;&lt;br /&gt;        //checking the controls found from  each row based on id is null or nut&lt;br /&gt;        if (lnk != null &amp;&amp; lblName != null)&lt;br /&gt;        {&lt;br /&gt;            //Adding java script alert box to display associated name on the corresponding label&lt;br /&gt;            //control&lt;br /&gt;            lnk.Attributes.Add("onclick","alert('"+lblName.Text+"'); return false;");&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    //Handling page index change event&lt;br /&gt;    protected void grdData_PageIndexChanging(object sender, GridViewPageEventArgs e)&lt;br /&gt;    {&lt;br /&gt;        //setting new page index to the gird based upon user clicked index&lt;br /&gt;        grdData.PageIndex = e.NewPageIndex;&lt;br /&gt;        //Binding the data source again after assigning new page index&lt;br /&gt;        BindGrid();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Output:-&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SV6iHmPuf_I/AAAAAAAAAVA/0Z0nC0IPNsM/s1600-h/2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 197px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SV6iHmPuf_I/AAAAAAAAAVA/0Z0nC0IPNsM/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5286841263988834290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/__bty7fMcKAc/SV6iHkL30TI/AAAAAAAAAU4/t4xifKMwhJU/s1600-h/1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 197px;" src="http://2.bp.blogspot.com/__bty7fMcKAc/SV6iHkL30TI/AAAAAAAAAU4/t4xifKMwhJU/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5286841263435796786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-4482184889770328769?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/4482184889770328769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=4482184889770328769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4482184889770328769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/4482184889770328769'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-do-paging-in-grid-view-net.html' title='How to do paging in grid view .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SV6iHmPuf_I/AAAAAAAAAVA/0Z0nC0IPNsM/s72-c/2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-5094715717579096996</id><published>2009-01-03T04:33:00.000+05:30</published><updated>2009-01-03T04:36:23.620+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to read Xml file .NET?</title><content type='html'>.NET frame work has provided library files which load and read xml file.&lt;br /&gt;System.Xml includes few classes which help to do so.&lt;br /&gt;&lt;br /&gt;Before reading an xml file we should load the xml file into memory.&lt;br /&gt;So when we ask to load a xml file we should also provide the path of xml file.&lt;br /&gt;Since xml holds data or information in an organised manner like tags and attributes, so we can read information based on tag name, attribute name etc…&lt;br /&gt;This example is to read and display data from xml file&lt;br /&gt;Xml file :-&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;Tags&amp;gt;&lt;br /&gt;  &amp;lt;Tag ID="1"&amp;gt;Tag 1&amp;lt;/Tag&amp;gt;&lt;br /&gt;  &amp;lt;Tag ID="2"&amp;gt;Tag 2&amp;lt;/Tag&amp;gt;&lt;br /&gt;&amp;lt;/Tags&amp;gt;&lt;br /&gt;&lt;br /&gt;The above xml file is saved as “XMLFile.xml”.&lt;br /&gt;&lt;br /&gt;Below code is to read the xml file and display the contents onto a label.&lt;br /&gt;&lt;br /&gt;Aspx page :-&lt;br /&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Xml File&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;    &amp;lt;label id="lblTag" runat="server"&amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Code behind page :-&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;using System.Xml;&lt;br /&gt;using System.Text;&lt;br /&gt;public partial class Default3 : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        if (!Page.IsPostBack)&lt;br /&gt;        {&lt;br /&gt;            ReadXml();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    private void ReadXml()&lt;br /&gt;    {&lt;br /&gt;        XmlDocument doc = new XmlDocument();&lt;br /&gt;        //To load xml file into memory&lt;br /&gt;        doc.Load(Server.MapPath("XMLFile.xml"));&lt;br /&gt;        //Reads all tags from xml file whose tage name is tag&lt;br /&gt;        XmlNodeList pList = doc.GetElementsByTagName("Tag");&lt;br /&gt;        StringBuilder objStringBuilder = new StringBuilder();&lt;br /&gt;        if (pList != null &amp;&amp; pList.Count &amp;gt; 0)&lt;br /&gt;        {&lt;br /&gt;            XmlNode pNode=null;&lt;br /&gt;            objStringBuilder.Append("Tags Inner Text : &amp;lt;br/&amp;gt;");&lt;br /&gt;            //Iterating to each node from the node list and reading the&lt;br /&gt;            //innert text&lt;br /&gt;            for(int i=0;i&amp;lt;pList.Count;i++)&lt;br /&gt;            {&lt;br /&gt;                pNode = pList[i];&lt;br /&gt;                //Appending inner text from each node&lt;br /&gt;                objStringBuilder.Append(pNode.InnerText+"&amp;lt;br/&amp;gt;");&lt;br /&gt;            }&lt;br /&gt;            objStringBuilder.Append("Tags Attributes : &amp;lt;br/&amp;gt;");&lt;br /&gt;            //Iterating to each node from the node list and reading the&lt;br /&gt;            //attributes and there values&lt;br /&gt;            for (int i = 0; i &amp;lt; pList.Count; i++)&lt;br /&gt;            {&lt;br /&gt;                pNode = pList[i];&lt;br /&gt;                //Appending attribute names and values&lt;br /&gt;                objStringBuilder.Append(pNode.Attributes[0].Name.ToString()+" : ");&lt;br /&gt;                objStringBuilder.Append(pNode.Attributes[0].Value.ToString() + "&amp;lt;br/&amp;gt;");&lt;br /&gt;            }&lt;br /&gt;            //Displaying the prepared content onto a html label&lt;br /&gt;            lblTag.InnerHtml = objStringBuilder.ToString();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Output :-&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SV6dimw1faI/AAAAAAAAAUw/b473bFFkr7E/s1600-h/1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 197px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SV6dimw1faI/AAAAAAAAAUw/b473bFFkr7E/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5286836230426033570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-5094715717579096996?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/5094715717579096996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=5094715717579096996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5094715717579096996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/5094715717579096996'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2009/01/how-to-read-xml-file-net.html' title='How to read Xml file .NET?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SV6dimw1faI/AAAAAAAAAUw/b473bFFkr7E/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-6650375841193812632</id><published>2009-01-01T02:34:00.001+05:30</published><updated>2009-01-01T16:49:20.587+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to display age based on Date of birth?</title><content type='html'>In web applications when user enters his/her date of birth, browser can update the age of the user instead of prompting again.&lt;br /&gt;&lt;br /&gt;So this can be achieved using java script function, which calculates the age then and there.&lt;br /&gt;&lt;br /&gt;Ex:-&lt;br /&gt;In this example I wish to display a text box to user to enter his/her date of birth in “dd/MM/yyyy” format, when cursor focuses out from the date of birth text box automatically the label beneath to the text box has to display the age of the user based upon entered date of birth.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Age&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript"&amp;gt;&lt;br /&gt;    &lt;br /&gt;    function CalAge(obj,lblid)&lt;br /&gt;    {    &lt;br /&gt;    &lt;br /&gt;     document.getElementById(lblid).innerText="Age";&lt;br /&gt;        if(IsValidDate(obj.value)==true)&lt;br /&gt;        {       &lt;br /&gt;        var dt1=obj.value;&lt;br /&gt;        var dt=new Date();&lt;br /&gt;        var dt2=null;        &lt;br /&gt;        if( (parseInt(dt.getMonth())+1)&amp;lt;10)        &lt;br /&gt;        dt2=dt.getDate()+"/0"+(parseInt(dt.getMonth())+1)+"/"+dt.getFullYear();&lt;br /&gt;        else&lt;br /&gt;        dt2=dt.getDate()+"/"+ (parseInt(dt.getMonth())+1)+"/"+dt.getFullYear();&lt;br /&gt;            if(IsValidDate(dt2)==true)&lt;br /&gt;            {&lt;br /&gt;            GetDateDiff(dt1,dt2,'Date of birth should be lesser than current date',lblid);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    function GetDateDiff(dat1,dat2,msg,lblid)&lt;br /&gt;    {&lt;br /&gt;        var fdts=null;&lt;br /&gt;        var tdts=null;&lt;br /&gt;        var lbl=document.getElementById(lblid);&lt;br /&gt;            if(dat1!='')&lt;br /&gt;            {&lt;br /&gt;                if(dat1.indexOf(".")!=-1)&lt;br /&gt;                {&lt;br /&gt;                alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;                return false;&lt;br /&gt;                }&lt;br /&gt;                fdts=dat1.split("/");       &lt;br /&gt;            }       &lt;br /&gt;       &lt;br /&gt;            if(dat2!='')&lt;br /&gt;            {&lt;br /&gt;                if(dat2.indexOf(".")!=-1)&lt;br /&gt;                {&lt;br /&gt;                alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;                return false;&lt;br /&gt;                }&lt;br /&gt;                tdts=dat2.split("/");       &lt;br /&gt;            }&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;            if(tdts!=null &amp;&amp; fdts!=null)&lt;br /&gt;            {&lt;br /&gt;                if(tdts[2]&amp;lt;=fdts[2])&lt;br /&gt;                {&lt;br /&gt;                        if(tdts[2]&amp;lt;fdts[2])&lt;br /&gt;                        {&lt;br /&gt;                        alert(msg);&lt;br /&gt;                        return false;&lt;br /&gt;                        }&lt;br /&gt;                        if(tdts[1]&amp;lt;=fdts[1])&lt;br /&gt;                        {&lt;br /&gt;                            if(tdts[1]&amp;lt;fdts[1])&lt;br /&gt;                            {&lt;br /&gt;                            alert(msg);&lt;br /&gt;                            return false;&lt;br /&gt;                            }&lt;br /&gt;&lt;br /&gt;                            if(tdts[0]&amp;lt;fdts[0])&lt;br /&gt;                            {&lt;br /&gt;                            alert(msg);&lt;br /&gt;                            return false;&lt;br /&gt;                            } &lt;br /&gt;                        }     &lt;br /&gt;                        lbl.innerText = "Age : 0";                      &lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    if(tdts[1]==fdts[1])&lt;br /&gt;                    {&lt;br /&gt;                        if(tdts[0]&amp;lt;fdts[0])&lt;br /&gt;                        { &lt;br /&gt;                        lbl.innerText ="Age : "+ (parseInt(tdts[2])-parseInt(fdts[2])-1);&lt;br /&gt;                        return true;&lt;br /&gt;                        }&lt;br /&gt;                         if(tdts[0]&amp;gt;=fdts[0])&lt;br /&gt;                        { &lt;br /&gt;                        lbl.innerText ="Age : "+ (parseInt(tdts[2])-parseInt(fdts[2]));&lt;br /&gt;                        return true;&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                    if(tdts[1]&amp;gt;fdts[1])&lt;br /&gt;                    {&lt;br /&gt;                    lbl.innerText ="Age : "+ (parseInt(tdts[2])-parseInt(fdts[2]));&lt;br /&gt;                     return true;&lt;br /&gt;                    }                    &lt;br /&gt;                    if(tdts[1]&amp;lt;fdts[1])&lt;br /&gt;                    {&lt;br /&gt;                    lbl.innerText ="Age : "+ (parseInt(tdts[2])-parseInt(fdts[2])-1);&lt;br /&gt;                     return true;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;br /&gt;                &lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    function IsValidDate(argDate)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;     {  &lt;br /&gt; var fdts=null;&lt;br /&gt;  if(argDate!='')&lt;br /&gt;       {&lt;br /&gt;       if(argDate.indexOf(".")!=-1)&lt;br /&gt;       {&lt;br /&gt;        alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;        return false;&lt;br /&gt;       }&lt;br /&gt;       fdts=argDate.split("/");       &lt;br /&gt;       }&lt;br /&gt;       &lt;br /&gt;       &lt;br /&gt;        if(fdts!=null)&lt;br /&gt;        {&lt;br /&gt;            if(fdts[1].length!=2)&lt;br /&gt;            {&lt;br /&gt;            alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;            if(fdts[0].length!=2)&lt;br /&gt;            {&lt;br /&gt;            alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;            if(!isInteger(fdts[2]) || !isInteger(fdts[1]) || !isInteger(fdts[0]))&lt;br /&gt;            {&lt;br /&gt;            alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;        alert('Enter Date');&lt;br /&gt;        return false;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    if(fdts[1]&amp;gt;12)&lt;br /&gt;    {&lt;br /&gt;    alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;     return false;&lt;br /&gt;    }&lt;br /&gt;    if(fdts[1]==2)&lt;br /&gt;    {&lt;br /&gt;        if(fdts[2]%4==0)&lt;br /&gt;        {&lt;br /&gt;            if(fdts[0]&amp;gt;29)&lt;br /&gt;            {&lt;br /&gt;            alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;           if(fdts[0]&amp;gt;28)&lt;br /&gt;            {&lt;br /&gt;            alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    if(fdts[1]==1 || fdts[1]==3 || fdts[1]==5 || fdts[1]==7 || fdts[1]==8 || fdts[1]==10 || fdts[1]==12)&lt;br /&gt;    {&lt;br /&gt;         if(fdts[0]&amp;gt;31)&lt;br /&gt;            {&lt;br /&gt;            alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;     if(fdts[1]==4 || fdts[1]==6 || fdts[1]==9 || fdts[1]==11 )&lt;br /&gt;    {&lt;br /&gt;         if(fdts[0]&amp;gt;30)&lt;br /&gt;            {&lt;br /&gt;            alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;            return false;&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;    return true;&lt;br /&gt;     } &lt;br /&gt;    catch(e)&lt;br /&gt;    {&lt;br /&gt;     alert('--Not a valid Date(dd/mm/yyyy)');&lt;br /&gt;    return false;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;function isInteger(s){&lt;br /&gt; var i;&lt;br /&gt;    for (i = 0; i &amp;lt; s.length; i++){   &lt;br /&gt;        // Check that current character is number.&lt;br /&gt;        var c = s.charAt(i);&lt;br /&gt;        if (((c &amp;lt; "0") || (c &amp;gt; "9"))) return false;&lt;br /&gt;    }&lt;br /&gt;    // All characters are numbers.&lt;br /&gt;    return true;&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;Enter Date of Birth&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;input type="text" id="txtDOB" onfocusout="CalAge(this,'lblAge');"/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan='2'&amp;gt;&amp;lt;label id="lblAge" &amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Output:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/__bty7fMcKAc/SVveZIUSHrI/AAAAAAAAAUo/SR2FKMUg4xY/s1600-h/1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 167px;" src="http://4.bp.blogspot.com/__bty7fMcKAc/SVveZIUSHrI/AAAAAAAAAUo/SR2FKMUg4xY/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5286063110960062130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-6650375841193812632?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/6650375841193812632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=6650375841193812632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6650375841193812632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/6650375841193812632'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2008/12/how-to-display-age-based-on-data-of.html' title='How to display age based on Date of birth?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__bty7fMcKAc/SVveZIUSHrI/AAAAAAAAAUo/SR2FKMUg4xY/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2315320140282209813</id><published>2008-12-30T19:27:00.000+05:30</published><updated>2008-12-30T19:30:24.514+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESRI'/><title type='text'>How to get features with in an Envelope – ESRI</title><content type='html'>When we load .mxd or map file onto map control, we can find features from different feature layers been spatially distributed.&lt;br /&gt;So to find a set of features which belong to a specific feature class and enclosed with in an envelope, we can write a generic function that accepts the envelope and feature layer to find features in specific feature layer.&lt;br /&gt;&lt;br /&gt;Step 1:-&lt;br /&gt;Write a function Considering IEnvelope , IFeatureLayer, MapControl as Input Parameters.&lt;br /&gt;Step 2:-&lt;br /&gt;Run a spatial query using ISpatailFilter interface for the feature class of the given Input feature layer with geometry as given envelope.&lt;br /&gt;Note:-For SpatialRelUse (Spatial relation)&lt;br /&gt;Assign enumeration values from esriSpatialRelEnum&lt;br /&gt;Ex:- esriSpatialRelEnum. esriSpatialRelIntersects for considering all featuers in the feature layer which intersect the given input envelope.&lt;br /&gt;Step 3:-&lt;br /&gt;Query feature class with the above Spatail filter object and retrieve feature cursor.&lt;br /&gt;&lt;br /&gt;We can retrieve feature by feature from the returned feature cursor and perform specific required operations.&lt;br /&gt;&lt;br /&gt;Function :- &lt;br /&gt;private IFeatureCursor GetFeatures(IFeatureLayer argFeatureLayer, IEnvelope argEnvelope, IMap argMap)&lt;br /&gt;       {&lt;br /&gt;           if (argEnvelope != null &amp;&amp; argFeatureLayer != null &amp;&amp; argFeatureLayer.FeatureClass != null &amp;&amp; argMap != null)&lt;br /&gt;           {&lt;br /&gt;               ISpatialFilter objSpatialFilter = new SpatialFilterClass();&lt;br /&gt;               objSpatialFilter = new SpatialFilter();&lt;br /&gt;               objSpatialFilter.Geometry = (IGeometry)argEnvelope;&lt;br /&gt;               objSpatialFilter.GeometryField = "Shape";&lt;br /&gt;               objSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;&lt;br /&gt;               return argFeatureLayer.FeatureClass.Search(objSpatialFilter, false);&lt;br /&gt;           }&lt;br /&gt;           return null;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;Example :-&lt;br /&gt;&lt;br /&gt;To select a set features spatially intersecting the given envelope.&lt;br /&gt;&lt;br /&gt;private void SelectFeatures(IFeatureLayer argFeatureLayer, IFeatureCursor argFeatCursor)&lt;br /&gt;       {&lt;br /&gt;           if (argFeatCursor != null)&lt;br /&gt;           {&lt;br /&gt;&lt;br /&gt;               IFeature pFeature = null;&lt;br /&gt;               while ((pFeature = argFeatCursor.NextFeature()) != null)&lt;br /&gt;               {&lt;br /&gt;                   Map.SelectFeature(argFeatureLayer, pFeature);&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;O/p&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/__bty7fMcKAc/SVopbnaeNKI/AAAAAAAAAUg/Grg85H4-Om8/s1600-h/1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 273px;" src="http://1.bp.blogspot.com/__bty7fMcKAc/SVopbnaeNKI/AAAAAAAAAUg/Grg85H4-Om8/s320/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5285582667085919394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2315320140282209813?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2315320140282209813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2315320140282209813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2315320140282209813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2315320140282209813'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2008/12/how-to-get-features-with-in-envelope.html' title='How to get features with in an Envelope – ESRI'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__bty7fMcKAc/SVopbnaeNKI/AAAAAAAAAUg/Grg85H4-Om8/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-2805186477880670038</id><published>2008-12-30T05:30:00.000+05:30</published><updated>2008-12-30T20:53:21.865+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>How to display second’s timer in web page?</title><content type='html'>JavaScript functions could help in this task to display timer in a web page.&lt;br /&gt;We should call a function at specific time intervals repeatedly which increments the counter variable and updates on a HTML label.&lt;br /&gt;&lt;br /&gt;“setTimeout” is a javascript function which can be used to call a specific javascript function repeatedly at specific time intervals.&lt;br /&gt;“clearTimeout” is a javascript function to terminate the loop of calling function.&lt;br /&gt;Ex:-&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Timer&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;br /&gt;var tmr;&lt;br /&gt;var counter=0;&lt;br /&gt;function displayTimer()&lt;br /&gt;{&lt;br /&gt;counter=counter+1;&lt;br /&gt;document.getElementById('lbltimer').innerText=counter;&lt;br /&gt;tmr=setTimeout("displayTimer();",1000);&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body onload="displayTimer();"&amp;gt;&lt;br /&gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;Timer :&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;label id='lbltimer'&amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt; &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7622867083899678654-2805186477880670038?l=programmerfindings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmerfindings.blogspot.com/feeds/2805186477880670038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7622867083899678654&amp;postID=2805186477880670038' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2805186477880670038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7622867083899678654/posts/default/2805186477880670038'/><link rel='alternate' type='text/html' href='http://programmerfindings.blogspot.com/2008/12/how-to-display-seconds-timer-in-web.html' title='How to display second’s timer in web page?'/><author><name>Programming and Database Concepts</name><uri>http://www.blogger.com/profile/13651769692890905281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-_j8fuO52gtM/TY-HWWvE75I/AAAAAAAAB4Y/ssVZrjb14Ro/s220/cup1.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7622867083899678654.post-3069007643399146883</id><published>2008-12-28T11:51:00.000+05:30</published><updated>2009-01-06T16:18:40.919+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>How to create triggers – Oracle?</title><content type='html'>Any updates made to table, specific to data but not schema can be traced using triggers.&lt;br /&gt;Data updates could be like inserting new row or updating an existing row in a data base table.&lt;br /&gt;So this updates are categorized into Insert and Update operations.&lt;br /&gt;When creating trigger on a table parameters that are to be considered are&lt;br /&gt;&lt;br /&gt;1) Trigger name to identify uniquely among the existing triggers. &lt;br /&gt;2) Trigger event that has to be raised before or after of a specific action.&lt;br /&gt;3) Event action (Insert / Update).&lt;br /&gt;4) Table name on which we are placing trigger.&lt;br /&gt;5) Is Insert/Update for each row? (This is because there c
