<?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/"
	>

<channel>
	<title>Meawznoy &#187; database</title>
	<atom:link href="http://minib0x.com/blog/tag/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://minib0x.com/blog</link>
	<description>• How CuTe ma SweetE MeawzZ~ •</description>
	<lastBuildDate>Mon, 28 Jun 2010 08:19:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ฝึกงาน #4</title>
		<link>http://minib0x.com/blog/2009/04/internship-4/</link>
		<comments>http://minib0x.com/blog/2009/04/internship-4/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 09:28:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Internship]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dynamic query]]></category>
		<category><![CDATA[query]]></category>

		<guid isPermaLink="false">http://minib0x.com/blog/?p=449</guid>
		<description><![CDATA[[07.04.2009] วันนี้ก็ให้แก้ไขปรับปรุง asp ของเมื่อครั้งที่แล้ว คือให้มีการทำเป็น dynamic query database ปกติแล้ว เวลาเราเขียน sql และมีเงื่อนไขหลายๆ อัน เราจะใช้ WHERE &#8230; AND &#8230; AND &#8230; เป็นต้น แต่ในบางครั้ง การทำ web application และมีการเชื่อมต่อฐานข้อมูล ก็จำเป็นต้องทำให้มัน query อย่างมีประสิทธิภาพมากขึ้น เช่น การสร้างหน้าฟอร์ม ให้ผู้ใช้ค้นหา โดยที่มี input หลายช่องนั้น ถ้าช่องไหนที่ผู้ใช้ไม่ได้ใส่ข้อมูลมา เราก็ไม่จำเป็นจะต้องใส่เงื่อนไขในการ query ไปด้วย มาดูตัวอย่างที่ทำกันเลยดีกว่า จากฟอร์มด้านบน คือ ผู้ใช้สามารถใส่ข้อมูลอะไรก็ได้ แล้วกด submit เพื่อ search (เนื่องจากว่า ไม่ค่อยมีเวลา จึงไม่ได้ตกแต่งให้สวยงาม ^^) static : ไม่ว่าผู้ใช้จะใส่ input [...]]]></description>
			<content:encoded><![CDATA[<p>[07.04.2009]</p>
<p>วันนี้ก็ให้แก้ไขปรับปรุง asp ของเมื่อครั้งที่แล้ว</p>
<p>คือให้มีการทำเป็น <span style="color: #0000ff;"><span style="font-size: medium;"><strong>dynamic query <span style="text-decoration: line-through;">database <br />
 </span></strong></span></span></p>
<p>ปกติแล้ว เวลาเราเขียน sql และมีเงื่อนไขหลายๆ อัน เราจะใช้ <br />
 WHERE &#8230; AND &#8230; AND &#8230; เป็นต้น แต่ในบางครั้ง การทำ web application<br />
 และมีการเชื่อมต่อฐานข้อมูล ก็จำเป็นต้องทำให้มัน query อย่างมีประสิทธิภาพมากขึ้น</p>
<p><em>เช่น การสร้างหน้าฟอร์ม ให้ผู้ใช้ค้นหา โดยที่มี input หลายช่องนั้น<br />
 ถ้าช่องไหนที่ผู้ใช้ไม่ได้ใส่ข้อมูลมา เราก็ไม่จำเป็นจะต้องใส่เงื่อนไขในการ query ไปด้วย</em></p>
<p>มาดูตัวอย่างที่ทำกันเลยดีกว่า</p>
<p><img title="northwind_customer_form" src="http://minib0x.com/blog/wp-content/uploads/2009/04/northwind_customer_form.jpg" alt="northwind_customer_form" width="320" height="210" /></p>
<p>จากฟอร์มด้านบน คือ ผู้ใช้สามารถใส่ข้อมูลอะไรก็ได้ แล้วกด submit เพื่อ search</p>
<p><em>(เนื่องจากว่า ไม่ค่อยมีเวลา จึงไม่ได้ตกแต่งให้สวยงาม ^^)</em></p>
<p><span style="color: #3366ff;"><span style="font-size: medium;"><strong>static :</strong></span></span></p>
<p>ไม่ว่าผู้ใช้จะใส่ input company name อย่างเดียว หรือ contact name อย่างเดียว หรือ input ทั้งสองค่า sql string ที่ใช้ก็เหมือนกัน คือ</p>
<p style="padding-left: 30px;"><strong><span style="color: #00ff00;">sqlString = &#8220;select * from Customers where CompanyName like &#8216;%&#8221;<span style="color: #ff99cc;">&amp;request.form(&#8220;cpn&#8221;)&amp;</span>&#8220;%&#8217; and ContactName like &#8216;%&#8221;<span style="color: #ff99cc;">&amp;request.form(&#8220;ctn&#8221;)&amp;</span>&#8220;%&#8217;&#8221;</span></strong></p>
<p><em>(request.form(&#8220;cpn&#8221;) คือ สิ่งที่ผู้ใช้ใส่ลงมาในช่อง company name<br />
 request.form(&#8220;ctn&#8221;) คือ สิ่งที่ผู้ใช้ใส่ลงมาในช่อง contact name)</em></p>
<p><br class="spacer_" /></p>
<p><span style="color: #3366ff;"><span style="font-size: medium;"><strong>dynamic :</strong></span></span></p>
<p>เมื่อผู้ใช้ใส่ input company name อย่างเดียว จะต้องได้<br />
 <span style="color: #00ccff;">sqlString = &#8220;select * from Customers where CompanyName like &#8216;%&#8221;&amp;request.form(&#8220;cpn&#8221;)&amp;&#8221;%&#8217;&#8221;</span></p>
<p>เมื่อผู้ใช้ใส่ contact name อย่างเดียว จะต้องได้<br />
 <span style="color: #00ccff;">sqlString = &#8220;select * from Customers where ContactName like &#8216;%&#8221;&amp;request.form(&#8220;ctn&#8221;)&amp;&#8221;%&#8217;&#8221;</span></p>
<p>เมื่อผู้ใช้ใส่ input ทั้งสองค่า จะต้องได้<br />
 <span style="color: #00ccff;">sqlString = &#8220;select * from Customers where CompanyName like &#8216;%&#8221;&amp;request.form(&#8220;cpn&#8221;)&amp;&#8221;%&#8217; and ContactName like &#8216;%&#8221;&amp;request.form(&#8220;ctn&#8221;)&amp;&#8221;%&#8217;&#8221;</span></p>
<p><strong>จะสังเกตว่า ในการ search แต่ละครั้ง sql ที่ใช้ query จะไม่เหมือนกันเลย</strong></p>
<p>นี่แหละจึงเรียกว่าเป็น <span style="color: #ff9900;"><strong>dynamic database</strong></span> คือมีการเปลี่ยนแปลงตลอดทุกครั้งที่ query</p>
<p>ทีนี้มาดูกันว่า เราจะต้องเขียนยังไง เพื่อให้มันเป็น dynamic database</p>
<p>ก็ง่ายๆ ใส่ IF เข้าไปเช็ค และทำการ ต่อ sql string แค่นั้นเอง</p>
<p style="padding-left: 30px;"><span style="color: #99cc00;"><strong> Dim sqlString<br />
 sqlString = &#8220;select * from Customers &#8220;<br />
 If len(request.form(&#8220;cpn&#8221;)) &gt; 0 Then<br />
 sqlString = sqlString &amp; &#8220;where CompanyName like &#8216;%&#8221;&amp;request.form(&#8220;cpn&#8221;)&amp;&#8221;%&#8217; &#8220;<br />
 If len(request.form(&#8220;ctn&#8221;)) &gt; 0 Then<br />
 sqlString = sqlString &amp; &#8220;and ContactName like &#8216;%&#8221;&amp;request.form(&#8220;ctn&#8221;)&amp;&#8221;%&#8217;&#8221;<br />
 End If<br />
 ElseIf len(request.form(&#8220;ctn&#8221;)) &gt; 0 Then<br />
 sqlString = sqlString &amp; &#8220;where ContactName like &#8216;%&#8221;&amp;request.form(&#8220;ctn&#8221;)&amp;&#8221;%&#8217; &#8220;<br />
 End If</strong></span></p>
<p>(ในที่นี้ใช้ภาษา asp ในการเขียน ซึ่งเป็น VBScript ดังนั้นจึงมี syntax คล้ายๆ ภาษา VB นั่นเอง)</p>
<p>ถ้าเป็นภาษาอื่นๆ ก็ทำได้เช่นเดียวกัน</p>
<p><em>ดูตัวอย่าง code : aspWithNorthwind.rar</em></p>
]]></content:encoded>
			<wfw:commentRss>http://minib0x.com/blog/2009/04/internship-4/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[DB] Steps in query processing</title>
		<link>http://minib0x.com/blog/2008/12/db-steps-in-query-processing/</link>
		<comments>http://minib0x.com/blog/2008/12/db-steps-in-query-processing/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 06:48:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[query processing]]></category>

		<guid isPermaLink="false">http://minib0x.com/blog/?p=167</guid>
		<description><![CDATA[เอามาแปะไว้หลังสอบเสร็จแล้ว จดจากในห้อง แต่ไม่ได้อ่านก่อนสอบ เศร้าจิต &#8211; -&#8221; (มั่วไป ไม่ตรงสักอัน 555)]]></description>
			<content:encoded><![CDATA[<p><a href="http://minib0x.com/blog/wp-content/uploads/2008/12/db-stepqueryprocessing.png"><img class="alignnone size-medium wp-image-168" title="db-stepqueryprocessing" src="http://minib0x.com/blog/wp-content/uploads/2008/12/db-stepqueryprocessing.png" alt="" width="375" height="290" /></a></p>
<p>เอามาแปะไว้หลังสอบเสร็จแล้ว</p>
<p>จดจากในห้อง แต่ไม่ได้อ่านก่อนสอบ เศร้าจิต &#8211; -&#8221;</p>
<p><em>(มั่วไป ไม่ตรงสักอัน 555)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://minib0x.com/blog/2008/12/db-steps-in-query-processing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
