<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>NguyenNgoc&#039;s Blog</title>
	<atom:link href="http://dinhnguyenngoc.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dinhnguyenngoc.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Fri, 20 Jan 2012 09:43:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dinhnguyenngoc.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>NguyenNgoc&#039;s Blog</title>
		<link>http://dinhnguyenngoc.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dinhnguyenngoc.wordpress.com/osd.xml" title="NguyenNgoc&#039;s Blog" />
	<atom:link rel='hub' href='http://dinhnguyenngoc.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Ủy nhi&#234;̣m (Event Delegation) trong ASP.NET : Phát sinh sự ki&#234;̣n từ User Control đ&#234;́n Parent Page</title>
		<link>http://dinhnguyenngoc.wordpress.com/2012/01/20/u%cc%89y-nhi%cc%a3m-event-delegation-trong-asp-net-pha%cc%81t-sinh-s%c6%b0%cc%a3-ki%cc%a3n-t%c6%b0%cc%80-user-control-d%cc%81n-parent-page/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2012/01/20/u%cc%89y-nhi%cc%a3m-event-delegation-trong-asp-net-pha%cc%81t-sinh-s%c6%b0%cc%a3-ki%cc%a3n-t%c6%b0%cc%80-user-control-d%cc%81n-parent-page/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 09:43:12 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C# Programming Guide]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/?p=1137</guid>
		<description><![CDATA[Delegate là gì? MọI ngườI thường hay gặp câu hỏI này khi còn ngồI trên ghế nhà trường và trong các cuộc phỏng vấn; câu trả lờI phổ biến là con trỏ hàm (function pointer). Trong phát triển Web, đây là kỹ thuật phổ biến để giao tiếp giữa các thành phần của Web (bản [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1137&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Delegate là gì? MọI ngườI thường hay gặp câu hỏI này khi còn ngồI trên ghế nhà trường và trong các cuộc phỏng vấn; câu trả lờI phổ biến là con trỏ hàm (function pointer). Trong phát triển Web, đây là kỹ thuật phổ biến để giao tiếp giữa các thành phần của Web (bản thân các hàm sự kiện của các controls được xây dựng sẵn trong ASP.NET đều dùng kỹ thuật này).</p>
<p>Ví dụ vớI 1 trang .ASPX và 1 User Control. User Control có 1 Button và khi click vào button này sẽ gọI 1 hàm trên trang .ASPX dùng delegate.</p>
<p><strong>User Control:</strong></p>
<p>C#</p>
<pre class="code"><span style="background:yellow;">&lt;%</span><span style="color:blue;">@ </span><span style="color:maroon;">Control </span><span style="color:red;">Language</span><span style="color:blue;">=&quot;C#&quot; </span><span style="color:red;">AutoEventWireup</span><span style="color:blue;">=&quot;true&quot; </span><span style="color:red;">CodeFile</span><span style="color:blue;">=&quot;Widget.ascx.cs&quot; </span><span style="color:red;">Inherits</span><span style="color:blue;">=&quot;Widget&quot; </span><span style="background:yellow;">%&gt;

</span><span style="color:blue;">&lt;</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">Button </span><span style="color:red;">ID</span><span style="color:blue;">=&quot;btnTest&quot; </span><span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;
    </span><span style="color:red;">Text</span><span style="color:blue;">=&quot;I am Inside User Control&quot; </span><span style="color:red;">OnClick</span><span style="color:blue;">=&quot;btnTest_Click&quot; /&gt;
</span></pre>
<p>Trên Widget.aspx.cs, viết xử lý sự kiện Delegate như sau:</p>
<p>Code-Behind</p>
<pre class="code"><span style="color:blue;">using </span>System;

<span style="color:blue;">public partial class </span><span style="color:#2b91af;">Widget </span>: System.Web.UI.<span style="color:#2b91af;">UserControl
</span>{
    <span style="color:green;">// Delegate declaration
    </span><span style="color:blue;">public delegate void </span><span style="color:#2b91af;">OnButtonClick</span>(<span style="color:blue;">string </span>strValue);
    <span style="color:green;">// Event declaration
    </span><span style="color:blue;">public event </span><span style="color:#2b91af;">OnButtonClick </span>btnHandler;

    <span style="color:green;">// Page load
    </span><span style="color:blue;">protected void </span>Page_Load(<span style="color:blue;">object </span>sender, <span style="color:#2b91af;">EventArgs </span>e)
    {
    }

    <span style="color:blue;">protected void </span>btnTest_Click(<span style="color:blue;">object </span>sender, <span style="color:#2b91af;">EventArgs </span>e)
    {
        <span style="color:green;">// Check if event is null
        </span><span style="color:blue;">if </span>(btnHandler != <span style="color:blue;">null</span>)
            btnHandler(<span style="color:blue;">string</span>.Empty);
        <span style="color:green;">// Write some text to output
        </span>Response.Write(<span style="color:#a31515;">&quot;User Control’s Button Click &lt;BR/&gt;&quot;</span>);
    }

}</pre>
<p>Đoan code trên kiểm tra btnHandler khác null, phát sinh sự kiện bằng cách truyền đốI số</p>
<p>Trang .ASPX</p>
<pre class="code"><span style="background:yellow;">&lt;%</span><span style="color:blue;">@ </span><span style="color:maroon;">Page </span><span style="color:red;">Language</span><span style="color:blue;">=&quot;C#&quot; </span><span style="color:red;">AutoEventWireup</span><span style="color:blue;">=&quot;true&quot; </span><span style="color:red;">CodeFile</span><span style="color:blue;">=&quot;Default.aspx.cs&quot; </span><span style="color:red;">Inherits</span><span style="color:blue;">=&quot;_Default&quot; </span><span style="background:yellow;">%&gt;

&lt;%</span><span style="color:blue;">@ </span><span style="color:maroon;">Register </span><span style="color:red;">Src</span><span style="color:blue;">=&quot;~/Widget.ascx&quot; </span><span style="color:red;">TagName</span><span style="color:blue;">=&quot;Widget&quot; </span><span style="color:red;">TagPrefix</span><span style="color:blue;">=&quot;uc1&quot; </span><span style="background:yellow;">%&gt;

</span><span style="color:blue;">&lt;!</span><span style="color:maroon;">DOCTYPE </span><span style="color:red;">html PUBLIC </span><span style="color:blue;">&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;</span><span style="color:maroon;">html </span><span style="color:red;">xmlns</span><span style="color:blue;">=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;</span><span style="color:maroon;">head </span><span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;&gt;
    &lt;</span><span style="color:maroon;">title</span><span style="color:blue;">&gt;&lt;/</span><span style="color:maroon;">title</span><span style="color:blue;">&gt;
&lt;/</span><span style="color:maroon;">head</span><span style="color:blue;">&gt;
&lt;</span><span style="color:maroon;">body</span><span style="color:blue;">&gt;
    &lt;</span><span style="color:maroon;">form </span><span style="color:red;">id</span><span style="color:blue;">=&quot;form1&quot; </span><span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;&gt;
    &lt;</span><span style="color:maroon;">div</span><span style="color:blue;">&gt;
        &lt;</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">Label </span><span style="color:red;">ID</span><span style="color:blue;">=&quot;lblText&quot; </span><span style="color:red;">Text</span><span style="color:blue;">=&quot;I am On Main Page : &quot; </span><span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot; /&gt;
        &lt;</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">DropDownList </span><span style="color:red;">ID</span><span style="color:blue;">=&quot;ddlTemp&quot; </span><span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;&gt;
            &lt;</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">ListItem</span><span style="color:blue;">&gt;</span>Google<span style="color:blue;">&lt;/</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">ListItem</span><span style="color:blue;">&gt;
            &lt;</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">ListItem</span><span style="color:blue;">&gt;</span>Microsoft<span style="color:blue;">&lt;/</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">ListItem</span><span style="color:blue;">&gt;
            &lt;</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">ListItem</span><span style="color:blue;">&gt;</span>Apple<span style="color:blue;">&lt;/</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">ListItem</span><span style="color:blue;">&gt;
        &lt;/</span><span style="color:maroon;">asp</span><span style="color:blue;">:</span><span style="color:maroon;">DropDownList</span><span style="color:blue;">&gt;
        &lt;</span><span style="color:maroon;">br </span><span style="color:blue;">/&gt;
        &lt;</span><span style="color:maroon;">br </span><span style="color:blue;">/&gt;
        &lt;</span><span style="color:maroon;">uc1</span><span style="color:blue;">:</span><span style="color:maroon;">Widget </span><span style="color:red;">ID</span><span style="color:blue;">=&quot;Widget1&quot; </span><span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot; /&gt;
    &lt;/</span><span style="color:maroon;">div</span><span style="color:blue;">&gt;
    &lt;/</span><span style="color:maroon;">form</span><span style="color:blue;">&gt;
&lt;/</span><span style="color:maroon;">body</span><span style="color:blue;">&gt;
&lt;/</span><span style="color:maroon;">html</span><span style="color:blue;">&gt;

</span></pre>
<p>Code-Behind</p>
<pre class="code"><span style="color:blue;">using </span>System;

<span style="color:blue;">public partial class </span><span style="color:#2b91af;">_Default </span>: System.Web.UI.<span style="color:#2b91af;">Page
</span>{

    <span style="color:blue;">protected void </span>Page_Load(<span style="color:blue;">object </span>sender, <span style="color:#2b91af;">EventArgs </span>e)
    {
        <span style="color:green;">// Declare and Define Event of User Control. When User Clicks on button
        //(which is inside UserControl)
        // below event is raised as I have called raised that event on Button Click
        </span>Widget1.btnHandler += <span style="color:blue;">new
            </span><span style="color:#2b91af;">Widget</span>.<span style="color:#2b91af;">OnButtonClick</span>(WebUserControl1_btnHandler);
    }

    <span style="color:blue;">void </span>WebUserControl1_btnHandler(<span style="color:blue;">string </span>strValue)
    {
        Response.Write(<span style="color:#a31515;">&quot;Main Page Event&lt;BR/&gt;Selected Value: &quot; </span>+
                    ddlTemp.SelectedItem.Text + <span style="color:#a31515;">&quot;&lt;BR/&gt;&quot;</span>);
    }

}</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1137/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1137&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2012/01/20/u%cc%89y-nhi%cc%a3m-event-delegation-trong-asp-net-pha%cc%81t-sinh-s%c6%b0%cc%a3-ki%cc%a3n-t%c6%b0%cc%80-user-control-d%cc%81n-parent-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>
	</item>
		<item>
		<title>Các l&#234;̣nh Vi thường dùng cho DBA</title>
		<link>http://dinhnguyenngoc.wordpress.com/2012/01/20/ca%cc%81c-l%cc%a3nh-vi-th%c6%b0%c6%a1%cc%80ng-du%cc%80ng-cho-dba/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2012/01/20/ca%cc%81c-l%cc%a3nh-vi-th%c6%b0%c6%a1%cc%80ng-du%cc%80ng-cho-dba/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 08:55:09 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle Linux]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/?p=1135</guid>
		<description><![CDATA[Một số lệnh Vi rất hữu ích và thường dùng cho người mới bắt đầu và DBA. esc :q! Just quit – don’t save esc :e! Revert to saved esc :wq Save and exit esc shif zz Save and exit esc i Enter insert mode (edit mode) esc a Enter append mode (edit mode) esc [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1135&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Một số lệnh Vi rất hữu ích và thường dùng cho người mới bắt đầu và DBA.</p>
<table border="0" cellspacing="0" cellpadding="0" width="400">
<tbody>
<tr>
<td valign="top" width="200">esc :q!</td>
<td valign="top" width="400">Just quit – don’t save</td>
</tr>
<tr>
<td valign="top" width="200">esc :e!</td>
<td valign="top" width="400">Revert to saved</td>
</tr>
<tr>
<td valign="top" width="200">esc :wq</td>
<td valign="top" width="400">Save and exit</td>
</tr>
<tr>
<td valign="top" width="200">esc shif zz</td>
<td valign="top" width="400">Save and exit</td>
</tr>
<tr>
<td valign="top" width="200">esc i</td>
<td valign="top" width="400">Enter insert mode (edit mode)</td>
</tr>
<tr>
<td valign="top" width="200">esc a</td>
<td valign="top" width="400">Enter append mode (edit mode)</td>
</tr>
<tr>
<td valign="top" width="200">esc</td>
<td valign="top" width="400">Exit edit mode</td>
</tr>
<tr>
<td valign="top" width="200">esc r</td>
<td valign="top" width="400">Replace a single character</td>
</tr>
<tr>
<td valign="top" width="200">esc x</td>
<td valign="top" width="400">Delete a single character</td>
</tr>
<tr>
<td valign="top" width="200">esc dd</td>
<td valign="top" width="400">Delete a single line</td>
</tr>
<tr>
<td valign="top" width="200">esc yy</td>
<td valign="top" width="400">Copy a single line</td>
</tr>
<tr>
<td valign="top" width="200">esc p</td>
<td valign="top" width="400">Paste a single line</td>
</tr>
<tr>
<td valign="top" width="200">.</td>
<td valign="top" width="200">Repeat last command</td>
</tr>
<tr>
<td valign="top" width="200">esc /</td>
<td valign="top" width="400">String search</td>
</tr>
<tr>
<td valign="top" width="200">esc $</td>
<td valign="top" width="400">Jump to end of line</td>
</tr>
<tr>
<td valign="top" width="200">esc ^</td>
<td valign="top" width="400">Jump to beginning of line</td>
</tr>
<tr>
<td valign="top" width="200">shift g</td>
<td valign="top" width="400">Jump to the end of the file</td>
</tr>
<tr>
<td valign="top" width="200">:1</td>
<td valign="top" width="400">Jump to the beginning of the file</td>
</tr>
<tr>
<td valign="top" width="200">:.=</td>
<td valign="top" width="400">Display the current line number</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1135&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2012/01/20/ca%cc%81c-l%cc%a3nh-vi-th%c6%b0%c6%a1%cc%80ng-du%cc%80ng-cho-dba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>
	</item>
		<item>
		<title>Các t&#226;̣p tin temp của ASP.NET được lưu ở đ&#226;u?</title>
		<link>http://dinhnguyenngoc.wordpress.com/2012/01/08/ca%cc%81c-t%cc%a3p-tin-temp-cu%cc%89a-asp-net-d%c6%b0%c6%a1%cc%a3c-l%c6%b0u-%c6%a1%cc%89-du/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2012/01/08/ca%cc%81c-t%cc%a3p-tin-temp-cu%cc%89a-asp-net-d%c6%b0%c6%a1%cc%a3c-l%c6%b0u-%c6%a1%cc%89-du/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 05:31:19 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/?p=1133</guid>
		<description><![CDATA[Trước giờ tôi cũng không mấy khi quan tâm đến việc ASP.NET lưu trữ các tập tin tạm (temp) ở đâu. Gần đây tôi phát hiện ASP.NET cung cấp thuộc tính HttpRuntime.CodeGenDir cho phép xác định đường dẫn vật lý đến thư mục mà ASP.NET dùng lưu các tập tin temp (các tập tin mã [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1133&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Trước giờ tôi cũng không mấy khi quan tâm đến việc ASP.NET lưu trữ các tập tin tạm (temp) ở đâu. Gần đây tôi phát hiện ASP.NET cung cấp thuộc tính HttpRuntime.CodeGenDir cho phép xác định đường dẫn vật lý đến thư mục mà ASP.NET dùng lưu các tập tin temp (các tập tin mã nguồn được biên dịch, resources, …).</p>
<pre class="code"><span style="color:blue;">protected void </span>Page_Load(<span style="color:blue;">object </span>sender, <span style="color:#2b91af;">EventArgs </span>e)
        {
            Response.Write(<span style="color:#2b91af;">HttpRuntime</span>.CodegenDir);
        }</pre>
<p><a href="http://dinhnguyenngoc.files.wordpress.com/2012/01/image.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://dinhnguyenngoc.files.wordpress.com/2012/01/image_thumb.png?w=593&#038;h=183" width="593" height="183" /></a></p>
<p>Chạy trang web trên máy tôi, output như sau:</p>
<p>C:\Users\DinhNN\AppData\Local\Temp\Temporary ASP.NET Files\root\b399a079\3f506e15</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1133&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2012/01/08/ca%cc%81c-t%cc%a3p-tin-temp-cu%cc%89a-asp-net-d%c6%b0%c6%a1%cc%a3c-l%c6%b0u-%c6%a1%cc%89-du/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>

		<media:content url="http://dinhnguyenngoc.files.wordpress.com/2012/01/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Free Java hosting r&#226;́t đáng thử</title>
		<link>http://dinhnguyenngoc.wordpress.com/2011/11/26/free-java-hosting-r%cc%81t-da%cc%81ng-th%c6%b0%cc%89/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2011/11/26/free-java-hosting-r%cc%81t-da%cc%81ng-th%c6%b0%cc%89/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 16:29:52 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Java Programming - Beginners]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/?p=1071</guid>
		<description><![CDATA[http://jelastic.com/. Nào cùng đăng ký, dùng thử và comment bạn nhé!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1071&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://dinhnguyenngoc.files.wordpress.com/2011/11/image.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://dinhnguyenngoc.files.wordpress.com/2011/11/image_thumb.png?w=889&#038;h=589" width="889" height="589" /></a></p>
<p><a title="http://jelastic.com/" href="http://jelastic.com/"><font size="3">http://jelastic.com/</font></a>. Nào cùng đăng ký, dùng thử và comment bạn nhé!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1071/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1071/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1071/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1071/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1071/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1071/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1071/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1071/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1071/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1071/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1071/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1071/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1071/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1071/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1071&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2011/11/26/free-java-hosting-r%cc%81t-da%cc%81ng-th%c6%b0%cc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>

		<media:content url="http://dinhnguyenngoc.files.wordpress.com/2011/11/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>M&#244;̣t s&#244;́ ví dụ v&#234;̀ Oracle Job Scheduler</title>
		<link>http://dinhnguyenngoc.wordpress.com/2011/11/26/m%cc%a3t-s%cc%81-vi%cc%81-du%cc%a3-v%cc%80-oracle-job-scheduler/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2011/11/26/m%cc%a3t-s%cc%81-vi%cc%81-du%cc%a3-v%cc%80-oracle-job-scheduler/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 15:53:21 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle PL/SQL]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/?p=1060</guid>
		<description><![CDATA[DBMS_SCHEDULER là 1 package của Oracle (có từ version 10) cung cấp các procedure giúp tạo job. &#160; Tạo Oracle Job gồm 3 bước: Tạo time schedule – dbms_scheduler.create_schedule Tạo program declaration – dbms_scheduler.create program Tạo job (conflation) – dbms_scheduler.create_job Lưu ý: login vào với vai trò sys và gán quyền cho user cần tạo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1060&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>DBMS_SCHEDULER là 1 package của Oracle (có từ version 10) cung cấp các procedure giúp tạo job.  </p>
<p>&nbsp; Tạo Oracle Job gồm 3 bước:
<ol>
<li>Tạo time schedule – dbms_scheduler.create_schedule  </li>
<li>Tạo program declaration – dbms_scheduler.create program  </li>
<li>Tạo job (conflation) – dbms_scheduler.create_job </li>
</ol>
<p><b>Lưu ý</b>: login vào với vai trò sys và gán quyền cho user cần tạo job:
<pre class="code">SQL&gt; conn <span style="color:gray;">/ </span><span style="color:blue;">as sysdba

GRANT create </span><span style="color:gray;">any directory </span><span style="color:blue;">TO fhr</span><span style="color:gray;">;
</span><span style="color:blue;">GRANT create procedure TO fhr</span><span style="color:gray;">;
</span><span style="color:blue;">GRANT create table TO fhr</span><span style="color:gray;">;

</span><span style="color:blue;">GRANT create job TO fhr</span><span style="color:gray;">;
</span><span style="color:blue;">GRANT manage scheduler TO fhr</span><span style="color:gray;">;
</span></pre>
<h4>1<a name="_Toc309810833">. Tạo time schedule</a></h4>
<pre class="code"><span style="color:blue;">begin
</span><span style="color:green;">-- daily from Monday to Sunday at 22:00 (10:00 p.m.)
dbms_scheduler</span><span style="color:gray;">.create_schedule
(schedule_name =&gt; </span><span style="color:red;">'INTERVAL_DAILY_2200'</span><span style="color:gray;">,
 </span><span style="color:blue;">start_date</span><span style="color:gray;">=&gt; trunc(sysdate)+18/24, </span><span style="color:green;">-- start today 18:00 (06:00 p.m.)
 repeat_interval</span><span style="color:gray;">=&gt; </span><span style="color:red;">'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN; BYHOUR=22;'</span><span style="color:gray;">,
 comments=&gt;</span><span style="color:red;">'Runtime: Every day (Mon-Sun) at 22:00 o clock'</span><span style="color:gray;">);

</span><span style="color:green;">-- run every hour, every day
dbms_scheduler</span><span style="color:gray;">.create_schedule(
schedule_name  =&gt; </span><span style="color:red;">'INTERVAL_EVERY_HOUR'</span><span style="color:gray;">,
  </span><span style="color:blue;">start_date    </span><span style="color:gray;">=&gt; trunc(sysdate)+18/24,
  repeat_interval =&gt; </span><span style="color:red;">'freq=HOURLY;interval=1'</span><span style="color:gray;">,
  comments     =&gt; </span><span style="color:red;">'Runtime: Every day every hour'</span><span style="color:gray;">);  

</span><span style="color:green;">-- run every 5 minute, every day
dbms_scheduler</span><span style="color:gray;">.create_schedule(
schedule_name  =&gt; </span><span style="color:red;">'INTERVAL_EVERY_5_MINUTES'</span><span style="color:gray;">,
  </span><span style="color:blue;">start_date    </span><span style="color:gray;">=&gt; trunc(sysdate)+18/24,
  repeat_interval =&gt; </span><span style="color:red;">'freq=MINUTELY;interval=5'</span><span style="color:gray;">,
  comments     =&gt; </span><span style="color:red;">'Runtime: Every day all 5 minutes'</span><span style="color:gray;">);

</span><span style="color:green;">-- run every minute, every day
dbms_scheduler</span><span style="color:gray;">.create_schedule(
schedule_name  =&gt; </span><span style="color:red;">'INTERVAL_EVERY_MINUTE'</span><span style="color:gray;">,
  </span><span style="color:blue;">start_date    </span><span style="color:gray;">=&gt; trunc(sysdate)+18/24,
  repeat_interval =&gt; </span><span style="color:red;">'freq=MINUTELY;interval=1'</span><span style="color:gray;">,
  comments     =&gt; </span><span style="color:red;">'Runtime: Every day every minute'</span><span style="color:gray;">);

</span><span style="color:green;">-- run every Sunday at 18:00 (06:00 p.m.)
dbms_scheduler</span><span style="color:gray;">.create_schedule
(schedule_name =&gt; </span><span style="color:red;">'INTERVAL_EVERY_SUN_1800'</span><span style="color:gray;">,
 </span><span style="color:blue;">start_date</span><span style="color:gray;">=&gt; trunc(sysdate)+18/24,
 repeat_interval=&gt; </span><span style="color:red;">'FREQ=DAILY; BYDAY=SUN; BYHOUR=18;'</span><span style="color:gray;">,
 comments=&gt;</span><span style="color:red;">'Runtime: Run at 6pm every Sunday'</span><span style="color:gray;">);
</span><span style="color:blue;">end</span><span style="color:gray;">;
</span></pre>
<h4>2<a name="_Toc309810834">. Tạo program declaration</a></h4>
<pre class="code"><span style="color:blue;">begin
</span><span style="color:green;">-- Call a procedure of a database package
dbms_scheduler</span><span style="color:gray;">.create_program
(</span><span style="color:magenta;">program_name</span><span style="color:gray;">=&gt; </span><span style="color:red;">'PROG_COLLECT_SESS_DATA'</span><span style="color:gray;">,
 program_type=&gt; </span><span style="color:red;">'STORED_PROCEDURE'</span><span style="color:gray;">,
 program_action=&gt; </span><span style="color:red;">'pkg_collect_data.prc_session_data'</span><span style="color:gray;">,
 </span><span style="color:blue;">enabled</span><span style="color:gray;">=&gt;true,
 comments=&gt;</span><span style="color:red;">'Procedure to collect session information'
 </span><span style="color:gray;">);
</span><span style="color:blue;">end</span><span style="color:gray;">;
</span></pre>
<h4>3<a name="_Toc309810835">. Tạo Job</a></h4>
<pre class="code"><span style="color:blue;">begin
</span><span style="color:green;">-- Connect both dbms_scheduler parts by creating the final job
dbms_scheduler</span><span style="color:gray;">.create_job
 (job_name =&gt; </span><span style="color:red;">'JOB_COLLECT_SESS_DATA'</span><span style="color:gray;">,
  </span><span style="color:magenta;">program_name</span><span style="color:gray;">=&gt; </span><span style="color:red;">'PROG_COLLECT_SESS_DATA'</span><span style="color:gray;">,
  schedule_name=&gt;</span><span style="color:red;">'INTERVAL_EVERY_5_MINUTES'</span><span style="color:gray;">,
  </span><span style="color:blue;">enabled</span><span style="color:gray;">=&gt;true,
  auto_drop=&gt;false,
  comments=&gt;</span><span style="color:red;">'Job to collect data about session values every 5 minutes'</span><span style="color:gray;">);
</span><span style="color:blue;">end</span><span style="color:gray;">;
</span></pre>
<h4>4<a name="_Toc309810836">. Thay đổi properties của phần Time scheduler</a></h4>
</p>
<p>&nbsp;
<pre class="code"><span style="color:blue;">begin
</span><span style="color:green;">-- change start time
DBMS_SCHEDULER</span><span style="color:gray;">.SET_ATTRIBUTE(
   name =&gt; </span><span style="color:red;">'INTERVAL_EVERY_5_MINUTES'</span><span style="color:gray;">,
   attribute =&gt; </span><span style="color:red;">'start_date'</span><span style="color:gray;">,
   value =&gt; to_date(</span><span style="color:red;">'22.06.2009 12:15'</span><span style="color:gray;">,</span><span style="color:red;">'dd.mm.yyyy hh24:mi'</span><span style="color:gray;">)
);

</span><span style="color:green;">-- change repeat interval
DBMS_SCHEDULER</span><span style="color:gray;">.SET_ATTRIBUTE(
   name =&gt; </span><span style="color:red;">'INTERVAL_EVERY_MINUTE'</span><span style="color:gray;">,
   attribute =&gt; </span><span style="color:red;">'repeat_interval'</span><span style="color:gray;">,
   value =&gt; </span><span style="color:red;">'freq=MINUTELY;interval=2'
</span><span style="color:gray;">);
</span><span style="color:blue;">end</span><span style="color:gray;">;
</span></pre>
<h4>5<a name="_Toc309810837">. Run job</a></h4>
<pre class="code"><span style="color:blue;">begin
dbms_scheduler</span><span style="color:gray;">.run_job(</span><span style="color:red;">'JOB_COLLECT_SESS_DATA'</span><span style="color:gray;">,TRUE);
</span><span style="color:blue;">end</span><span style="color:gray;">;
</span></pre>
<h4>6<a name="_Toc309810838">. Restart job</a></h4>
<pre class="code"><span style="color:blue;">begin
dbms_scheduler</span><span style="color:gray;">.</span><span style="color:blue;">disable</span><span style="color:gray;">(</span><span style="color:red;">'JOB_COLLECT_INST_INFO'</span><span style="color:gray;">);
dbms_scheduler.</span><span style="color:blue;">enable</span><span style="color:gray;">(</span><span style="color:red;">'JOB_COLLECT_INST_INFO'</span><span style="color:gray;">);
</span><span style="color:blue;">end</span><span style="color:gray;">;
</span></pre>
<h4>7<a name="_Toc309810839">. Job status</a></h4>
<pre class="code"><span style="color:green;">-- All jobs
</span><span style="color:blue;">select </span><span style="color:gray;">* </span><span style="color:blue;">from user_scheduler_jobs</span><span style="color:gray;">;

</span><span style="color:green;">-- Get information to job
</span><span style="color:blue;">select </span><span style="color:gray;">* </span><span style="color:blue;">from user_scheduler_job_log order by log_date desc</span><span style="color:gray;">;

</span><span style="color:green;">-- Show details on job run
</span><span style="color:blue;">select </span><span style="color:gray;">* </span><span style="color:blue;">from user_scheduler_job_run_details</span><span style="color:gray;">;
</span></pre>
<h4>8<a name="_Toc309810840">. Alternative Job status</a></h4>
<pre class="code"><span style="color:green;">-- View all running jobs, Run the following query from SQL*Plus
</span><span style="background:white;color:blue;">SELECT a.sid, </span><span style="background:white;color:black;">c</span><span style="background:white;color:blue;">.</span><span style="background:white;color:black;">serial#</span><span style="background:white;color:blue;">, a.job, a.</span><span style="background:white;color:black;">failures</span><span style="background:white;color:blue;">, to_char(a.</span><span style="background:white;color:black;">this_date</span><span style="background:white;color:blue;">, </span><span style="background:white;color:red;">'mm/dd/yyyy hh:mi pm'</span><span style="background:white;color:blue;">) </span><span style="background:white;color:black;">startdatetime</span><span style="background:white;color:blue;">, </span><span style="background:white;color:black;">b</span><span style="background:white;color:blue;">.</span><span style="background:white;color:black;">what
</span><span style="background:white;color:blue;">FROM </span><span style="background:white;color:black;">dba_jobs_running </span><span style="background:white;color:blue;">a, </span><span style="background:white;color:black;">dba_jobs b</span><span style="background:white;color:blue;">, </span><span style="background:white;color:black;">v$session c
</span><span style="background:white;color:blue;">WHERE a.job = </span><span style="background:white;color:black;">b</span><span style="background:white;color:blue;">.job AND a.sid = </span><span style="background:white;color:black;">c</span><span style="background:white;color:blue;">.sid order by a.</span><span style="background:white;color:black;">this_date</span><span style="background:white;color:blue;">;

</span><span style="background:white;color:green;">-- View all jobs, Run the following query from SQL*Plus
</span><span style="background:white;color:blue;">SELECT job, to_char(</span><span style="background:white;color:black;">last_date</span><span style="background:white;color:blue;">, </span><span style="background:white;color:red;">'mm/dd/yyyy hh:mi pm'</span><span style="background:white;color:blue;">) </span><span style="background:white;color:black;">lastdate</span><span style="background:white;color:blue;">, to_char(</span><span style="background:white;color:black;">next_date</span><span style="background:white;color:blue;">, </span><span style="background:white;color:red;">'mm/dd/yyyy hh:mi pm'</span><span style="background:white;color:blue;">) </span><span style="background:white;color:black;">nextdate</span><span style="background:white;color:blue;">, </span><span style="background:white;color:black;">failures</span><span style="background:white;color:blue;">, </span><span style="background:white;color:black;">broken</span><span style="background:white;color:blue;">, </span><span style="background:white;color:black;">what
</span><span style="background:white;color:blue;">FROM </span><span style="background:white;color:black;">dba_jobs
</span><span style="background:white;color:blue;">ORDER BY </span><span style="background:white;color:black;">next_date</span><span style="background:white;color:blue;">;
</span></pre>
<h4>9<a name="_Toc309810841">. Killing a running job</a></h4>
</p>
<p>Ý hay là khi muốn kill 1 job mà không muốn nó tự restart lại là hãy đánh dấu broken. Chạy lệnh sau từ SQL*Plus:
<pre class="code"><span style="color:green;">-- Võìi job_id lâìy týÌ câu truy vâìn “View all running jobs”.
</span><span style="background:white;color:blue;">execute </span><span style="background:white;color:black;">dbms_job.broken</span><span style="background:white;color:blue;">(</span><span style="background:white;color:black;">job_id</span><span style="background:white;color:blue;">, true);
</span></pre>
</p>
<p>Sau đó, kill session bằng 1 trong 2 cách:</p>
<p>#1: (the best / fast way to kill a session) </p>
<pre class="code"><span style="color:green;">-- Find the thread you want to kill
</span><span style="background:white;color:blue;">SELECT sid, </span><span style="background:white;color:black;">spid </span><span style="background:white;color:blue;">as thread, </span><span style="background:white;color:black;">osuser</span><span style="background:white;color:blue;">, </span><span style="background:white;color:black;">s</span><span style="background:white;color:blue;">.program
FROM </span><span style="background:white;color:black;">sys</span><span style="background:white;color:blue;">.</span><span style="background:white;color:black;">v_$process </span><span style="background:white;color:blue;">p, </span><span style="background:white;color:black;">sys</span><span style="background:white;color:blue;">.</span><span style="background:white;color:black;">v_$session s
</span><span style="background:white;color:blue;">WHERE p.</span><span style="background:white;color:black;">addr </span><span style="background:white;color:blue;">= </span><span style="background:white;color:black;">s</span><span style="background:white;color:blue;">.</span><span style="background:white;color:black;">paddr</span><span style="background:white;color:blue;">;

</span><span style="background:white;color:green;">-- Run the following for Oracle on Linux, sid is the name given to the Oracle Instance
-- (the name given in the TNSnames.ora fle)
</span><span style="background:white;color:black;">orakill </span><span style="background:white;color:blue;">sid thread
</span></pre>
<p>#2: </p>
<pre class="code"><span style="color:green;">-- Run the following query from SQL*Plus
-- sid and serial# came from the "View all running jobs" query.
-- The problem with this option is it can sometimes take a long time to kill the session
</span><span style="background:white;color:blue;">alter system kill session </span><span style="background:white;color:red;">'sid, serial#'
</span></pre>
<p>Để remove hoàn toàn job, chạy lệnh:
<pre class="code"><span style="color:green;">-- job_id is obtained from the "View all running jobs" query.
</span><span style="background:white;color:blue;">execute </span><span style="background:white;color:black;">dbms_job.remove</span><span style="background:white;color:blue;">(</span><span style="background:white;color:black;">job_id</span><span style="background:white;color:blue;">)
</span></pre>
</p>
<p>Nếu chỉ muốn stop job để fix chứ không muốn remove hoàn toàn, hãy fix job và restart bằng lệnh:
<pre class="code"><span style="color:green;">-- job_id is obtained from the "View all running jobs" query
</span><span style="background:white;color:blue;">execute </span><span style="background:white;color:black;">dbms_job.broken</span><span style="background:white;color:blue;">(</span><span style="background:white;color:black;">job_id</span><span style="background:white;color:blue;">, false);
</span></pre>
</p>
<p>Ghi chú: Khi nào job trở thành ‘broken’?
<ul>
<li>Oracle thực hiện job thành công sau 16 lần cố gắng thực hiện (có lỗi khi thực hiện job). hoặc</li>
<li>Người dùng đánh dấu job là ‘broken’, dùng proc DBMS_JOB.BROKEN. </li>
</ul>
<ul>Khi 1 job được đánh dấu là ‘broken’. Oracle sẽ không cố gắng thực hiện job nữa đến khi job được đánh dấu không còn ‘broken’ hoặc bị ép thực thi bằng lời gọi DBMS_JOB.RUN.</ul>
<h4>10. Tạo job mà không cần time scheduler và program declaration</h4>
<pre class="code"><span style="color:blue;">begin
dbms_scheduler</span><span style="color:gray;">.create_job (
  job_name            =&gt; </span><span style="color:red;">'TEST_JOB'</span><span style="color:gray;">,
  job_type            =&gt; </span><span style="color:red;">'PLSQL_BLOCK'</span><span style="color:gray;">,
  job_action          =&gt; </span><span style="color:red;">'begin /* some process code */ commit; end;'</span><span style="color:gray;">,
  number_of_arguments =&gt; 0,
  </span><span style="color:blue;">start_date          </span><span style="color:gray;">=&gt; sysdate +1/24/59, </span><span style="color:green;">-- sysdate + 1 minute
  job_class           </span><span style="color:gray;">=&gt; </span><span style="color:red;">'DEFAULT_JOB_CLASS'</span><span style="color:gray;">,  </span><span style="color:green;">-- Normal Group
  </span><span style="color:blue;">enabled             </span><span style="color:gray;">=&gt; TRUE,
  auto_drop           =&gt; TRUE,
  comments            =&gt; </span><span style="color:red;">'Testrun'</span><span style="color:gray;">);
</span><span style="color:blue;">end</span><span style="color:gray;">;
</span></pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1060/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1060/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1060/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1060/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1060/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1060/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1060/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1060/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1060/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1060/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1060/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1060/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1060/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1060/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1060&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2011/11/26/m%cc%a3t-s%cc%81-vi%cc%81-du%cc%a3-v%cc%80-oracle-job-scheduler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>
	</item>
		<item>
		<title>Sự khác nhau giữa TRUNCATE và DELETE</title>
		<link>http://dinhnguyenngoc.wordpress.com/2011/07/04/s%c6%b0%cc%a3-kha%cc%81c-nhau-gi%c6%b0%cc%83a-truncate-va%cc%80-delete/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2011/07/04/s%c6%b0%cc%a3-kha%cc%81c-nhau-gi%c6%b0%cc%83a-truncate-va%cc%80-delete/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 16:49:32 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[SQL Server General]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/2011/07/04/s%c6%b0%cc%a3-kha%cc%81c-nhau-gi%c6%b0%cc%83a-truncate-va%cc%80-delete/</guid>
		<description><![CDATA[1. Giới thiệu Truncate và Delete cả hai được dùng để xóa dữ liệu trong bảng. Cả hai lệnh này chỉ xóa dữ liệu mà không xóa cấu trúc bảng. 2. Truncate Lệnh TRUNCATE xóa tất cả dòng dữ liệu trong bảng mà không ghi nhận lại trong transaction log. Lệnh TRUNCATE có cùng chức [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1059&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4>1. Giới thiệu</h4>
<p>Truncate và Delete cả hai được dùng để xóa dữ liệu trong bảng. Cả hai lệnh này chỉ xóa dữ liệu mà không xóa cấu trúc bảng.</p>
<h4>2. Truncate</h4>
<p>Lệnh TRUNCATE xóa tất cả dòng dữ liệu trong bảng mà không ghi nhận lại trong transaction log. Lệnh TRUNCATE có cùng chức năng như lệnh DELETE là xóa dữ liệu trong bảng mà không làm thay đổi cấu trúc của bảng, tuy nhiên, bạn không dùng mệnh đề WHERE với lệnh TRUNCATE.</p>
<p>Cú pháp:</p>
<blockquote><p><span style="color:blue;">TRUNCATE TABLE</span>[{database_name.[schema_name]<span style="color:gray;">.|</span><span style="color:magenta;">schema_name</span><span style="color:gray;">.}</span>]table_name</p>
</blockquote>
<p>Table_name: là tên của bảng cần xóa tất cả các dòng dữ liệu.</p>
<p>VD: TRUNCATE TABLE products</p>
<p>Lệnh trên sẽ xóa tất cả dữ liệu trong bảng products.</p>
<h4>3. Delete</h4>
<p>Lệnh Delete cũng xóa các dòng trong bảng, nhưng nó ghi lại các dòng được xóa trong transaction log. Bạn có thể dùng mệnh đề WHERE với lệnh Delete để giới hạn các dòng được xóa.</p>
<p>Dưới đây là cú pháp đơn giản, thông tin chi tiết lệnh Delete, xem link: <a href="http://msdn2.microsoft.com/en-us/library/ms189835.aspx">DELETE (Transact-SQL)</a>.</p>
<p>Cú pháp:</p>
<pre class="code"><span style="color:blue;">DELETE FROM </span>TABLE_NAME [{database_name.[schema_name]<span style="color:gray;">.|</span><span style="color:magenta;">schema_name</span><span style="color:gray;">.}</span>]table_name</pre>
<p>Database_name: Tên của cơ sở dữ liệu chứa bảng dữ liệu cần xóa. Đây là tùy chọn, nếu không chỉ định, cơ sở dữ liệu hiện tại được chọn.</p>
<p>Schema_name: Tên của schema chứa bảng dữ liệu cần xóa. Đây là tùy chọn, nếu không chỉ định, schema hiện tại được chọn.</p>
<p>Table_name: Tên của bảng dữ liệu cần xóa.</p>
<p>VD: DELETE FROM products</p>
<p>Lệnh trên sẽ xóa tất cả dữ liệu trong bảng products.</p>
<p>Trong lệnh DELETE bạn có thể giới hạn số dòng dữ liệu được xóa bằng mệnh đề WHERE. Chỉ những dòng dữ liệu nào thỏa điều kiện trong mệnh đề WHERE mới được xóa, không phải tất cả dòng dữ liệu.</p>
<p>VD: DELETE FROM products WHERE productid in (1, 2, 3)</p>
<p>Lệnh trên chỉ xóa các dòng dữ liệu có productid là 1, 2, 3 trong bảng products.</p>
<h4>4. Khác nhau giữa TRUNCATE và DELETE</h4>
<p><b>TRUNCATE và DELETE xóa dữ liệu nhưng không xóa cấu trúc</b></p>
<p>Cả hai lệnh đều xóa các dòng dữ liệu trong bảng, nhưng cấu trúc bảng, các cột, ràng buộc, chỉ mục,.. đều được giữ lại. Để xóa định nghĩa bảng và dữ liệu, dùng lệnh DROP TABLE.</p>
<p><b>Điều kiện trên tập dữ liệu xóa</b></p>
<p>Điều kiện trên tập dữ liệu xóa nghĩa là không phải tất cả dòng dữ liệu đều bị xóa. Nếu tôi có bảng authors và tôi chỉ muốn xóa các authors mà sống ở Australia.</p>
<p>· TRUNCATE – Lệnh Truncate chúng ta sẽ không thể xóa theo điều kiện bởi vì lệnh này không cho phép mệnh đề WHERE.</p>
<p>· DELETE – Lệnh Delete cho phép xóa dữ liệu theo điều kiện đi theo mệnh đề WHERE.</p>
<p><b>Delete và Truncate đều ghi lại các hành động</b></p>
<p>Trong nhiều bài viết tôi đọc trên Internet, tôi thấy: “delete thì ghi nhận lại các hành động còn truncate thì không”, nghĩa là khi thực hiện lệnh delete, nó sẽ ghi nhận lại thông tin các dòng bị delete và khi thực hiện lệnh truncate nó sẽ không ghi lại gì cả. Nhưng thực tế không phải vậy, truncate cũng ghi lại hành động nhưng theo cách khác. Nó dùng ít tài nguyên hệ thống và transaction log hơn delete. Lệnh truncate ghi lại thông tin ở mức tối thiểu, đó là lý do tại sao nó nhanh hơn lệnh delete. Cả hai lệnh delete và truncate đều ghi lại các hành động, nhưng chúng làm việc khác nhau:</p>
<p>· DELETE ghi lại hành động cho mỗi dòng. Lệnh delete xóa từng dòng một và ghi lại thay đổi trong transaction log cho mỗi dòng được xóa. Vì thế nếu xóa một lượng lớn các dòng dữ liệu thì có thể làm đầy transaction log. Điều này có nghĩa là khi xóa một lượng lớn các dòng dữ liệu sẽ dùng nhiều tài nguyên máy chủ cũng như ghi lại mỗi sự thay đổi cho mỗi dòng được xóa. Đó là lý do tại sao transaction log sẽ phình ra rất to. Một số người thắc mắc là tại sao Microsoft không sửa lệnh delete để không ghi lại mỗi dòng được xóa???. Câu trả lời là khi bạn chạy cơ sở dữ liệu trong chế độ khôi phục đầy đủ, thông tin chi tiết trong transaction log rất cần thiết để khôi phục cơ sở dữ liệu về trạng thái gần nhất.</p>
<p>· TRUNCATE ghi lại các trang dữ liệu được hủy cấp phát khi bị xóa. Nó không ghi lại các dòng bị xóa, thay vào đó nó ghi lại các trang dữ liệu bị hủy cấp phát của bảng. Lệnh truncate xóa dữ liệu bằng cách hủy cấp phát các trang dữ liệu được dùng lưu trữ dữ liệu trong bảng và ghi lại chỉ các trang được hủy cấp phát trong transaction log. Thực sự, truncate không xóa dữ liệu, nó hủy cấp phát các trang dữ liệu và xóa con trỏ đến chỉ mục. Dữ liệu sẽ vẫn tồn tại cho đến khi nó bị ghi đè hoặc cơ sở dữ liệu shrunk. Hành động này không yêu cầu nhiều tài nguyên và vì thế rất nhanh. Có một lỗi phổ biến là nghĩ rằng truncate không ghi lại thao tác. Điều này sai, các trang dữ liệu bị hủy cấp phát được ghi nhận trong tập tin log. Vì thế, “Books Online (BOL)” ám chỉ hành động truncate là hành động “ghi nhật ký rất ít”. Bạn có thể dùng truncate đi kèm với transaction, và khi transaction được rolled-back, các trang dữ liệu được cấp phát lại lần nữa và cơ sở dữ liệu trở về trạng thái trước đó.</p>
<p>Để ví dụ cụ thể việc truncate cũng ghi lại thao tác:</p>
<pre class="code"><span style="color:green;">/*Create a dummy table in a non-production(dummy) database.*/
</span><span style="color:blue;">CREATE TABLE </span>tranTest
<span style="color:gray;">(
    </span>Id <span style="color:blue;">int Identity</span><span style="color:gray;">(</span>1<span style="color:gray;">,</span>1<span style="color:gray;">),
    </span>Name <span style="color:blue;">Varchar</span><span style="color:gray;">(</span>100<span style="color:gray;">)
)

</span><span style="color:green;">/*Now insert the records in the tranTest table.*/
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prashant'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prateek'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'praveen'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prakash'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prabhat'</span><span style="color:gray;">)

</span><span style="color:green;">/*Then as you know delete is a looged operation that means
  in a transaction if we rollback the transaction after deleting
  the records from table, it will restore all deleted records.*/

</span><span style="color:blue;">BEGIN TRAN
    DELETE FROM </span>tranTest
    <span style="color:blue;">SELECT </span><span style="color:gray;">* </span><span style="color:blue;">FROM </span>tranTest
<span style="color:blue;">ROLLBACK

SELECT </span><span style="color:gray;">* </span><span style="color:blue;">FROM </span>tranTest

<span style="color:green;">/*Now delete all records from the table.*/
</span><span style="color:blue;">DELETE FROM </span>tranTest

<span style="color:green;">/*And Insert new fresh records in the table.*/
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prashant'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prateek'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'praveen'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prakash'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prabhat'</span><span style="color:gray;">)

</span><span style="color:green;">/*Then as you now you know that Truncate is also a logged
  opertion so it must restore all records that are deleted from
  the tranTest table in the below tansaction*/

</span><span style="color:blue;">BEGIN TRAN
    TRUNCATE TABLE </span>tranTest
    <span style="color:blue;">SELECT </span><span style="color:gray;">* </span><span style="color:blue;">FROM </span>tranTest
<span style="color:blue;">ROLLBACK

SELECT </span><span style="color:gray;">* </span><span style="color:blue;">FROM </span>tranTest</pre>
<p>Khi chúng ta chạy lệnh trên và TRUNCATE cũng phục hồi tất cả dòng dữ liệu đồng nghĩa với TRUNCATE cũng ghi lại thao tác, nhưng dùng ít tài nguyên. Tôi nghĩ rằng dùng ít tài nguyên nghĩa là bạn có thể khôi phục lại lệnh truncte cho một phiên làm việc cụ thể nhưng nếu bạn đóng kết nối thì sẽ không thể phục hồi lại dữ liệu. Nhưng Delete có thể phục hồi dữ liệu về sau.</p>
<h4><b><font size="3">5. Hành vi của Delete và Truncate đối với cột Identity</font></b></h4>
<p>OK, bây giờ trong trường hợp các cột Identity. Cả hai lệnh TRUNCATE và DELETE đều có sự khác nhau với các cột Identity. Khi dùng truncate, nó sẽ reset biến đếm được dùng bởi cột Identity cho các dòng dữ liệu mới. Nhưng trong trường hợp Delete nó sẽ không reset biến đếm được dùng bởi cột Identity. Trong trường hợp muốn duy trì biến đếm cho cột Identity thì phải dùng DELETE thay vì TRUNCATE. </p>
<p>Tại sao có sự khác nhau này? Tôi không biết, nhưng T-SQL cung cấp cho bạn 2 cách để có thể dùng khi cần. Trong trường hợp bạn muốn tất cả dòng dữ liệu được xóa và biến đếm reset trở về 1, thì truncate là hợp lý. Nếu muốn xóa tất cả các dòng dữ liệu nhưng không muốn reset biến đếm, DELETE là hợp lý.</p>
<p>Ví dụ cho trường hợp này:</p>
<pre class="code"><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prateek'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'praveen'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prakash'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prabhat'</span><span style="color:gray;">)

</span><span style="color:green;">/* Now at this point the counter of this table's
   identity column is 5 taht is the max value of id column */
</span><span style="color:blue;">SELECT </span><span style="color:gray;">* </span><span style="color:blue;">FROM </span>tranTest

<span style="color:green;">/* Then truncate the table. */
</span><span style="color:blue;">TRUNCATE TABLE </span>tranTest

<span style="color:green;">/* and insert new records */
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prashant'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prateek'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'praveen'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prakash'</span><span style="color:gray;">)
</span><span style="color:blue;">INSERT INTO </span>tranTest<span style="color:gray;">(</span>Name<span style="color:gray;">) </span><span style="color:blue;">VALUES</span><span style="color:gray;">(</span><span style="color:red;">'prabhat'</span><span style="color:gray;">)

</span><span style="color:green;">/* Now you'll see that after truncating the table the
   identity is reset to its seed value. */
</span><span style="color:blue;">SELECT </span><span style="color:gray;">* </span><span style="color:blue;">FROM </span>tranTest

<span style="color:green;">/* So this example explains the beahviour of both of these command for Identity columns. */
</span></pre>
<h4>6. TRUNCATE là lệnh DDL, trong khi DELETE là lệnh DML</h4>
<p>Đây cũng là sự khác nhau cơ bản khi bạn đọc các bài viết. TRUNCATE là hành động DDL (data definition language) và DELETE là hành động DML (data manupulation language). Nhưng tại sao?</p>
<p>Khi chúng ta chạy lệnh TRUNCATE, nó đặt một “Schema modification (Sch-M)” lock trên bảng. “Schema modification (Sch-M)” là gì?.</p>
<p>Database Engine dùng schema modification (Sch-M) lock bảng trong suốt thời gian hành động DDL thực hiện, như add một cột hoặc drop 1 bảng. Trong suốt thời gian này, Sch-M ngăn cản các hành động truy xuất bảng. Có nghĩa là Sch-M khóa tất cả các hành động bên ngoài cho đến khi block được release. Bởi vì TRUNCATE không thực hiện bất kỳ hành động thay đổi dữ liệu nào trên bảng và là lý do DELETE TRIGGER không được gọi. Dù không thay đổi dữ liệu trên bảng, nhưng như bạn biết là TRUNCATE reset biến đếm của cột Identity, nghĩa là TRUNCATE thực hiện thay đổi định nghĩa bảng hay cấu trúc, chính là hành động DDL. Để được xếp vào hành động DDL, lệnh TRUNCATE phải thỏa:</p>
<p>· Thay đổi cấu trúc hoặc định nghĩa bảng dưới dạng hành động DDL, và</p>
<p>· Trong khi bạn thay đổi cấu trúc bảng, bạn không thể truy xuất bảng để thực hiện bất kỳ hành động thay đổi dữ liệu nào.</p>
<p>Với lệnh DELETE, tôi không chắc là có hành động lock, nhưng như đã biết lệnh DELETE xóa từng dòng một. Hành động thay đổi dữ liệu bằng cách xóa nó trong bảng, và bởi vì DELETE thực hiện thay đổi dữ liệu nên DELETE TRIGGER được gọi. Lệnh DELETE không thay đổi cấu trúc của bảng như cách mà lệnh TRUNCATE thay đổi reset biến đếm của cột Identity.</p>
<p>Để được xếp vào hành động DML, lệnh DELETE phải thỏa:</p>
<p>· Thay đổi dữ liệu trong bảng.</p>
<p>· Khi đang thay đổi dữ liệu trong bảng, bạn không thể thực hiện bất kỳ sự thay đổi cấu trúc bảng.</p>
<h4>7. Hành vi TRUNCATE và DELETE đối với TRIGGER</h4>
<p>Như bạn biết, trigger được gọi khi có bất kỳ sự thay đổi xảy ra trong bảng.</p>
<p>· TRUNCATE – Khi bạn chạy lệnh TRUNCATE để xóa tất cả các dòng dữ liệu của bảng, nó thực sự không xóa dữ liệu mà chỉ hủy cấp phát các trang dữ liệu và vì thế trigger không được gọi. </p>
<p>· DELETE – Trigger được gọi mỗi khi 1 dòng dữ liệu được xóa.</p>
<h4>8. Chúng ta nên dùng lệnh trong trường hợp nào</h4>
<p>Với Delete</p>
<p>· Lệnh Delete có thể sinh lỗi nếu trigger cố gắng xóa dòng dữ liệu được tham chiếu bởi dữ liệu trong bảng khác có ràng buộc FOREIGN KEY. Nếu Delete xóa nhiều dòng, và 1 dòng không được xóa, lệnh sẽ bị hủy, lỗi sẽ được trả về và không dòng nào được xóa.</p>
<p>Với Truncate</p>
<p>Bạn không thể dùng TRUNCATE TABLE trên bảng:</p>
<p>· Được tham chiếu bởi ràng buộc FOREIGN KEY.</p>
<p>· Trên một view được lập chỉ mục.</p>
<p>· Được published dùng transactional replication hoặc merge replication.</p>
<h4><b><font size="3">9. Quyền thực hiện lệnh TRUNCATE và DELETE</font></b></h4>
<p>Để TRUNCATE bảng, bạn cần tối thiểu là quyền ALTER trên bảng (được gán mặc định cho table owner, sysadmin, db_owner, và db_ddladmin). Để xóa dùng DELETE, chỉ cần cấp quyền Delete.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1059/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1059/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1059/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1059/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1059/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1059/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1059/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1059/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1059/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1059/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1059/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1059/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1059/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1059/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1059&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2011/07/04/s%c6%b0%cc%a3-kha%cc%81c-nhau-gi%c6%b0%cc%83a-truncate-va%cc%80-delete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL Server: Ki&#234;̉m tra ngày cu&#244;́i tháng (end of month)</title>
		<link>http://dinhnguyenngoc.wordpress.com/2011/06/29/sql-server-ki%cc%89m-tra-nga%cc%80y-cu%cc%81i-tha%cc%81ng/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2011/06/29/sql-server-ki%cc%89m-tra-nga%cc%80y-cu%cc%81i-tha%cc%81ng/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 03:26:12 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/2011/06/29/sql-server-ki%cc%89m-tra-nga%cc%80y-cu%cc%81i-tha%cc%81ng/</guid>
		<description><![CDATA[Đây là câu truy vấn cơ bản kiểm tra 1 ngày (date) là ngày cuối tháng (end of month). DECLARE @Dt DATETIME SET @Dt = '2011-06-30' IF MONTH(@Dt) != MONTH(DATEADD(DAY,1,@Dt)) BEGIN PRINT 'End Of Month' END Như bạn thấy, chúng ta dùng hàm MONTH(DATEADD(DAY,1,@Dt)) vớI @Dt là ngày của tháng 6, kết quả sẽ là [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1057&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Đây là câu truy vấn cơ bản kiểm tra 1 ngày (date) là ngày cuối tháng (end of month).</p>
<pre>DECLARE @Dt DATETIME 

SET @Dt = '2011-06-30'

IF MONTH(@Dt) != MONTH(DATEADD(DAY,1,@Dt))
BEGIN
PRINT 'End Of Month'
END</pre>
<p>Như bạn thấy, chúng ta dùng hàm MONTH(DATEADD(DAY,1,@Dt)) vớI @Dt là ngày của tháng 6, kết quả sẽ là 7 nếu đó là ngày cuối tháng. Tất cả những gì cần làm là so sánh nó với MONTH(@Dt) để xem nếu 2 giá trị khớp nhau. Nếu không khớp nhau, nó là ngày cuối tháng.</p>
<p><a href="http://dinhnguyenngoc.files.wordpress.com/2011/06/image1.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="http://dinhnguyenngoc.files.wordpress.com/2011/06/image_thumb1.png?w=414&#038;h=309" width="414" height="309" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1057/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1057/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1057/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1057/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1057/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1057/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1057/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1057/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1057/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1057/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1057/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1057/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1057/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1057/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1057&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2011/06/29/sql-server-ki%cc%89m-tra-nga%cc%80y-cu%cc%81i-tha%cc%81ng/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>

		<media:content url="http://dinhnguyenngoc.files.wordpress.com/2011/06/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Ý nghĩa của Oracle &quot;I&quot; và &quot;G&quot;</title>
		<link>http://dinhnguyenngoc.wordpress.com/2011/06/29/y%cc%81-nghi%cc%83a-cu%cc%89a-oracle-i-va%cc%80-g/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2011/06/29/y%cc%81-nghi%cc%83a-cu%cc%89a-oracle-i-va%cc%80-g/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 03:11:26 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[Oracle DBA]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/2011/06/29/y%cc%81-nghi%cc%83a-cu%cc%89a-oracle-i-va%cc%80-g/</guid>
		<description><![CDATA[Ý nghĩa của “I” và “G” trong Oracle và định dạng số phiên bản trong mỗI release của sản phẩm Oracle. Ý nghĩa của “I” trong Oracle: Phiên bản Oracle bắt đầu bằng ký tự I. Bắt đầu từ 1999 vớI phiên bản 6i, 8i và 9i. I là biểu thị cho “Internet”, nghĩa là [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1054&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ý nghĩa của “I” và “G” trong Oracle và định dạng số phiên bản trong mỗI release của sản phẩm Oracle.</p>
<p><strong>Ý nghĩa của “I” trong Oracle:</strong></p>
<p>Phiên bản Oracle bắt đầu bằng ký tự <strong>I</strong>. Bắt đầu từ 1999 vớI phiên bản 6i, 8i và 9i. I là biểu thị cho “<strong>Internet</strong>”, nghĩa là viết tắt cho “Internet” và Oracle thêm “<strong>I</strong>” vào tên phiên bản để phản ánh sự hỗ trợ Internet vớI Java Virtual Machine (JVM) được tích hợp sẵn. Oracle 9i thêm hỗ trợ XML vào năm 2001.</p>
<p><strong>Ý nghĩa của “G” trong Oracle:</strong></p>
<p>Bắt đầu năm 2003 vớI phiên bản 10g và 11g, <strong>G</strong> biểu thị cho “Grid Computing” với lần phát hành Oracle 10g vào năm 2003. Oracle 10g được giới thiệu với <strong>G</strong> nhấn mạnh đến tính toán lưới (grid computing), cho phép kết chùm máy chủ (cluster) với chi phí thấp, các máy chủ chuẩn công nghiệp được liên kết với nhau thành đơn vị duy nhất. Nâng cấp Enterprise Manager 10g Grid Control Release 4 (10.2.0.4.0) hoặc cao hơn lên Enterprise Manager 11g Grid Control Release 1 (11.1.0.1.0).</p>
<p><u>Ví dụ về định dạng số phiên bản trong mỗI release (10.2.0.1.0) của sản phẩm Oracle:</u></p>
<p>Hai ký tự số đầu tiên (10): Meager database / Version release number</p>
<p>Ký tự số thứ hai (2): Maintenance release number</p>
<p>Ký tự số thứ ba (0): Application release number</p>
<p>Ký tự số thứ tư (1): Component-Specific / Patch release number</p>
<p>Ký tự số thứ năm (0): Platform release number</p>
<p>Platform release number có thể được dùng xác định bản phát hành patch cụ thể của sản phẩm Oracle trên hệ điều hành.</p>
<p><a href="http://dinhnguyenngoc.files.wordpress.com/2011/06/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dinhnguyenngoc.files.wordpress.com/2011/06/image_thumb.png?w=338&#038;h=147" width="338" height="147" /></a></p>
<pre>SQL&gt; SELECT * FROM PRODUCT_COMPONENT_VERSION;
PRODUCT&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VERSION&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; STATUS
---------------------------------------- --------------- ---------------
NLSRTL&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.1.0&#160;&#160;&#160;&#160;&#160; Production
Oracle Database 10g Enterprise Edition&#160;&#160; 10.2.0.1.0&#160;&#160;&#160;&#160;&#160; 64bi
PL/SQL&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.1.0&#160;&#160;&#160;&#160;&#160; Production
TNS for 64-bit Windows:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.1.0&#160;&#160;&#160;&#160;&#160; Production</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1054/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1054&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2011/06/29/y%cc%81-nghi%cc%83a-cu%cc%89a-oracle-i-va%cc%80-g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>

		<media:content url="http://dinhnguyenngoc.files.wordpress.com/2011/06/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL Server Driver 2.0 cho PHP 5</title>
		<link>http://dinhnguyenngoc.wordpress.com/2011/06/21/sql-server-driver-2-0-cho-php-5/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2011/06/21/sql-server-driver-2-0-cho-php-5/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 16:15:17 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[SQL Server General]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/2011/06/21/sql-server-driver-2-0-cho-php-5/</guid>
		<description><![CDATA[Microsoft vừ phát hành SQL Server Drivers for PHP 2.0, hỗ trợ PDO vớI PDO_SQLSRV mớI và fix các bugs đã tồn tạI trong SQLSRV driver. Các native APIs trong PHP Driver for SQL Server 1.1 vẫn còn giữ lạI và thêm hỗ trợ PDO API. Microsoft nói “In order to support the new PDO_SQLSRV [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1051&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Microsoft vừ phát hành SQL Server Drivers for PHP 2.0, hỗ trợ PDO vớI PDO_SQLSRV mớI và fix các bugs đã tồn tạI trong SQLSRV driver. Các native APIs trong PHP Driver for SQL Server 1.1 vẫn còn giữ lạI và thêm hỗ trợ PDO API.</p>
<p>Microsoft nói “<em>In order to support the new PDO_SQLSRV driver to be consistent with the existing SQLSRV driver, the code was re-architected into a core functional layer and an &quot;API&quot; layer above. The SQLSRV driver is built from this re-architected code, and also includes some important bug fixes. This release is available to all SQL Server users at no additional charge</em>”.</p>
<p><a href="http://www.microsoft.com/download/en/details.aspx?id=20098" target="_blank">Download SQL Server Driver 2.0 for PHP</a></p>
<p>Drivers for PHP for SQL Server được dùng để kết nối các ứng dụng PHP đến Microsoft SQL Server.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1051/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1051/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1051/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1051/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1051/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1051/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1051/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1051/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1051&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2011/06/21/sql-server-driver-2-0-cho-php-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2010 Update for HTML 5 and CSS3</title>
		<link>http://dinhnguyenngoc.wordpress.com/2011/06/20/visual-studio-2010-update-for-html-5-and-css3/</link>
		<comments>http://dinhnguyenngoc.wordpress.com/2011/06/20/visual-studio-2010-update-for-html-5-and-css3/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 14:51:59 +0000</pubDate>
		<dc:creator>Dinh Nguyen Ngoc</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Product Releases]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">https://dinhnguyenngoc.wordpress.com/2011/06/20/visual-studio-2010-update-for-html-5-and-css3/</guid>
		<description><![CDATA[Microsoft vừa phát hành bản cập nhật Web Standards Update đầu tiên cho Visual Studio 2010 SP1 và Visual Web Developer Express 2010 SP1. Bản phát hành này cập nhật hỗ trợ HTML 5 và CSS 3 cũng như W3C specifications mới nhất. Đồng thời cũng hỗ trợ các API cho JavaScript Intellisense. Download Web [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1047&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Microsoft vừa phát hành bản cập nhật Web Standards Update đầu tiên cho Visual Studio 2010 SP1 và Visual Web Developer Express 2010 SP1. Bản phát hành này cập nhật hỗ trợ HTML 5 và CSS 3 cũng như W3C specifications mới nhất. Đồng thời cũng hỗ trợ các API cho JavaScript Intellisense.</p>
<p><a href="http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83" target="_blank">Download Web Standards Update for Visual Studio SP1</a></p>
<p>Để tìm hiểu nhiều hơn bản cập nhật này, xem các links sau:</p>
<ul>
<li><a href="http://blogs.msdn.com/b/webdevtools/archive/2011/06/15/web-standards-update-for-visual-studio-2010-sp1.aspx">Web Standards Update for Visual Studio 2010 SP1</a> </li>
<li><a href="http://vishaljoshi.blogspot.com/2011/06/announcing-html5-css3-support-for.html">Announcing HTML5 &amp; CSS3 support for Visual Studio 2010 SP1</a> </li>
<li><a href="http://www.hanselman.com/blog/AnnouncingTheWebStandardsUpdateHTML5SupportForTheVisualStudio2010Editor.aspx">Announcing WebStandard Support for Visual Studio 2010 Editor</a> </li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dinhnguyenngoc.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dinhnguyenngoc.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dinhnguyenngoc.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dinhnguyenngoc.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dinhnguyenngoc.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dinhnguyenngoc.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dinhnguyenngoc.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dinhnguyenngoc.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dinhnguyenngoc.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dinhnguyenngoc.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dinhnguyenngoc.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dinhnguyenngoc.wordpress.com/1047/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dinhnguyenngoc.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dinhnguyenngoc.wordpress.com/1047/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dinhnguyenngoc.wordpress.com&amp;blog=5869837&amp;post=1047&amp;subd=dinhnguyenngoc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dinhnguyenngoc.wordpress.com/2011/06/20/visual-studio-2010-update-for-html-5-and-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/420441b824cb721aab4c928f2f1a37b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dinhnguyenngoc</media:title>
		</media:content>
	</item>
	</channel>
</rss>
