วันเสาร์ที่ 5 มกราคม พ.ศ. 2556

โปรแกรม จัดการฐานข้อมูล MySQL แบบฟรี

เราไม่ต้องใช้ phpMyAdmin ที่แสนช้าอีกต่อไป เพราะว่าเรามีโปรแกรม ที่ควบคุม และจัดการ MySQL ได้จากเครื่องของเราเลย


ก่อนอื่นขอท้าวความ ไปถึงการจัดการ MySQL แบบปกติก่อน ก็คือว่าทุกวันนี้ คนส่วนใหญ่จะจัดการ MySQL database ด้วย phpMyAdmin กัน เพราะว่าเป็นตัวที่ติดมากับ server จำลองหลายๆตัว ส่วนตัวผมเอง ก็ยอมรับเลย ว่าตั้งแต่เริ่มศึกษาการทำเว็บ ก็ใช้ phpMyAdmin มาตลอดนี่แหล่ะ เพราะตอนนั้นไม่รู้เรื่องมากเท่าไร แต่ใช้ไป ใช้มา รู้สึกว่ามันช้าครับ ไม่ทันใจเลย จนเมื่อสามปีก่อนได้มั้ง ผมก็เริ่มเสาะหาโปรแกรมที่ทำหน้าที่จัดการ MySQL ได้จากเครื่องเรา โดยไม่ต้องอาศัย Web base แบบ phpMyAdmin (เพราะเป็น web base มันเลยช้า) จนได้รู้จักโปรแกรม Navicat เข้าครับ แล้วพบว่ามัน work มากถูกใจผมเลย เพราะว่ามันจะใช้งาน internet เฉพาะการสั่งงาน mysql กับผลลัพท์เท่านั้น ที่เหลือ ส่วนการแสดงผลต่างๆ เป็นหน้าที่ของ GUI ที่แสดงในโปรแกรมนั่นล่ะครับ ด้วยความที่ทำงานได้เร็ว และง่าย ผมก็ละเมิดลิขสิทธิ์ใช้มาตลอด
จนกระทั่ง บทความ ว่าด้วยเรื่องการผิดศีลข้อ 2 ของคนใช้คอมพิวเตอร์ ทำให้ผมต้องเสาะหาโปรแกรมทดแทนใหม่อีกครั้ง เพราะว่าตอนนี้ Navicat เป็นโปรแกรมละเมิดลิขสิทธิ์โปรแกรมเดียวเท่านั้นที่ยังเหลืออยู่ในเครื่อง ที่เหลือเปลี่ยนเป็น Open Source หรือว่า Freeware หรือเป็นโปรแกรมที่ถูกลิขสิทธิ์ทั้งหมดแล้ว
จนกระทั่ง พบรักเข้ากับโปรแกรมที่ชื่อว่า MySQL Workbench ที่เป็นของ Sun (เจ้าของ ลิขสิทธิ์ MySQL ในปัจจุบัน) เค้าทำขึ้นมาให้เราเอาไปใช้งานได้ฟรี! นี่แหล่ะที่ผมต้องการ แน่นอนครับ รีบ download ลงมาอย่างไว และทดสอบใช้งานอย่างด่วนเลย เบื้องต้น ที่ผมทดสอบการใช้งานแบบ ง่ายๆ พบว่า ทำงานได้ใกล้เคียงกับ Navicat มากเลยครับ แต่ประหยัดเงินไปได้ $129 หรือประมาณ 4,000 กว่าบาท มันสุดยอดมากครับ ผมคิดว่าจะใช้ตัวนี้ไปตลอดเลย เพราะว่าฟรี และใช้งานสะดวกไม่ต่างกันด้วย

จริงๆนอกจาก MySQL Workbench แล้ว ผมค้นพบว่า ยังมีอีกหลายตัวเลยครับ ที่เป็น Freeware แต่ผมยังไม่ได้ลอง ใครที่ประสบการณ์เยอะๆ มาแลกเปลี่ยนกันก็ได้ครับ ว่าตัวไหน ดีมากน้อยต่างกันอย่างไร
สำหรับใครที่อยากใช้งาน ให้เริ่มจาก download ได้ที่ http://www.mysql.com/downloads/workbench/ มีทั้ง version ติดตั้งลงเครื่อง และแบบ Portable ด้วย นี่ล่ะที่ถูกใจผมมากๆ เพราะว่าไม่ต้องติดตั้งอะไรเลย (ย้ายเครื่องก็ยังเอาไปทำงานได้ด้วยนะ)
สำหรับวิธีการใช้ สำหรับคนที่ไม่เคยใช้งานโปรแกรมแบบนี้ ผมขอเล่าให้ฟังถึงการทำงานของโปรแกรมแบบนี้ก่อน จะใด้เข้าใจครับ โปรแกรม เช่น Navicat หรือ SQLyog หรือ MySQL Workbench เหล่านี้ เป็นโปรแกรมที่ทำหน้าที่ในการจัดการ database จัดการในที่นี้ก็หมายถึงทุกอย่างเลย เช่น การสร้าง table การแก้ไขโครงสร้าง table หรือ database รวมไปถึงการจัดการด้านข้อมูล โดยทำได้หมด ไม่ว่าจะเป็นการ create edit delete โดยทำผ่านโปรแกรมเหล่านี้ได้เลย คล้ายกันกับการใช้งาน ผ่าน phpMyAdmin นั่นแหล่ะ แต่ว่า phpMyAdmin เป็น web base ทำงานผ่าน web browser ใช้ server ประมวล และส่งข้อมูลมาในรูปแบบหน้าเว็บ แต่โปรแกรมเหล่านี้ไม่ใช่ เพราะว่าหน้าตาต่างๆนั้น เป็นส่วนของโปรแกรมอยู่แล้ว โปรแกรมแค่ทำหน้าที่ ไปดึงเอาเฉพาะส่วนของข้อมูลจาก server มาเท่านั้น และแสดงผลออกมาในรูปแบบตามมาตรฐานที่ควรจะเป็น ทำให้โปรแกรมพวกนี้ทำงานได้เร็วกว่า phpMyAdmin มาก อีกทั้งมันยังมีความสามารถอื่นๆอีก เช่น การ การ copy table, การลบ table ก็ทำได้โดยใช้เม้าส์คลิกได้เลย ง่ายๆ ลดเวลาลงไปเยอะ
เมื่อเข้าใจดีแล้ว ก็เริ่มใช้งานกันเลยครับ

โปรแกรม MySQL Workbench ทั้ง 3 ส่วน

ส่วนแรก SQL Developer

ส่วนนี้ทำหน้าที่ ในการเชื่อมต่อออกไป database ต่างๆตามที่เราได้สร้างเอาไว้ก่อนนี้แล้ว ซึ่งส่วนใหญ่จะใช้หัวข้อนี้เป็นหลัก เพราะว่าเราจะทำกับโครงสร้าง table และข้อมูลใน table ซะเป็นส่วนใหญ่ 

ส่วนสอง Data Modeling

ส่วนนี้ทำหน้าที่ เป็นเครื่องมือช่วยออกแบบ database ทั้งโครงสร้าง และความสัมพันธ์กันในรูปแบบต่างๆ และ สร้างออกมาเป็น SQL code ให้เลย (ผมไม่เคยใช้เลย เพราะว่าปกติจะร่างในกระดาษหรือนึกๆเอาตลอด หากมีเวลาอาจจะลองใช้งานดู)

ส่วนสาม Server Administration

ส่วนนี้ทำหน้าที่เอาไว้ ควบคุม ดูแล จัดการ server MySQL โดยเน้นสำหรับคนที่เป็น DBA (Database Administrator) ใช้งานเป็นหลักเลยครับผมไม่ได้ใช้อีกเช่นกัน เพราะว่าโอกาสที่จะใช้มีน้อยครับ หากมีโอกาสก็คงไม่พลาดที่จะลองเช่นกัน
เริ่มต้น สำหรับคนที่ต้องการใช้งานกับ server จริง ตรวจสอบให้มั่นใจก่อนว่า server ของท่านเปิด host % เอาไว้ใน MySQL database ตัวนั้น เพราะค่าปกติเค้าจะปิดเอาไว้เพื่อความปลอดภัยครับ ถ้ายังไม่เปิด ให้ add host ผ่าน control panel ที่ท่านใช้งาน หรือปรึกษาผู้ให้บริการ hosting ที่ท่านใช้งานได้ครับ ย้ำอีกครั้ง ว่า การเปิด host % จะทำให้ความปลอดภัยของ database ต่ำลง เพราะว่ามันจะรับ connection ที่มาจากทุกที่ใน internet (ค่าปกติจะรับเฉพาะเครื่อง server เท่านั้น หรืออีกนามก็คือ localhost นั่นเอง)
เมื่อเตรียม database ให้พร้อม แน่นอนว่า username ,password ก็ต้องพร้อมแล้ว เรามาเริ่มกันเลยครับ
หลังจากที่ download เสร็จแล้วก็ติดตั้ง หรือแตกไฟล์(สำหรับคนที่เลือก download แบบ .zip เท่านั้น)
กลับมาที่การใช้งานส่วนแรก ของ MySQL Workbench เราจำเป็นที่จะต้องสร้าง connection เอาไว้ก่อน เหตุผลเพราะว่าโปรแกรมจะต้องรู้ ว่าคุณต้องการจัดการ Connection database ของที่ไหน เพราะว่าหลายคนมีหลาย server และ หลาย database
สร้าง connection ใน mysql workbench
จากนั้นให้เรากรอกข้อมูลของ MySQL ที่เราใช้งานลงไป ใครใช้งาน database ในเครื่องตัวเองก็ localhost หรือ 127.0.0.1 ส่วนใครใช้ที่ server ก็ใส่ ip หรือ dns ก็ได้ (อย่าลืมเปิด host % ก่อนนะ ตามย่อหน้าบนๆที่กล่าวเอาไว้ก่อนแล้ว) สำหรับใครที่ต้องการเก็บรหัสผ่านเอาไว้เลย ไม่ต้องกรอกทุกครั้ง (เพิ่มความสะดวก ลดความปลอดภัย) ก็กดปุ่ม แล้วกรอกรหัสลงไป แนะนำว่าเมื่อเรียบร้อย ให้กด test connection ก่อน OK เพราะว่าเราจะได้รู้ว่าค่าที่เรากรอกถูกต้องหรือเปล่า ถ้าจะผิด ก็มีแค่เครื่อง ยังไม่เปิด host % , user ผิด, pass ผิด, ใส่ address ผิด หรืออื่นๆก็คือ internet ที่ใช้งาน block port 3306 เอาไว้อยู่ ก็เป็นได้
เมื่อเรียบร้อยแล้ว เราก็กด double click เพื่อเข้าไปดู connection ของเรา เราจะเห็น database ของเราปรากฏอยู่ และ table ต่างๆ(กด drop down ดูครับ) ทั้งนี้ กด click ขวาดูก็ได้ ว่าเราทำอะไรได้อย่างไรบ้าง จะเห็นได้ว่ามันง่ายมากๆเลยในการใช้งาน
อ้อ สำหรับคนที่ไม่คุ้นเคย ก่อนที่เราจะจัดการ database เรา ให้เราเลือก database ก่อนนะครับ ด้วยคำสั่ง use ชื่อdatabase; เช่น use databasename; แล้วสั่งรัน (ปุ่มสายฟ้าฟาด) หรือกด ctrl+enter หลังจากนั้น เราก็ทำงานบน database นั้นๆเลย (มีประโยชน์สำหรับคนมี หลาย database ใน 1 connection ครับ)
ขอให้สนุกกับ database ครับ 

วันอังคารที่ 13 พฤศจิกายน พ.ศ. 2555

thai adfly


วิธีสมัคร Adf.ly เพื่อเริ่มต้นทำเงินกับ Adf.ly

1) คลิกที่รูปด้านล่างนี้เพื่อเริ่มต้นสมัครครับ

$$$ พิเศษ สมัครผ่านหน้าเว็บนี้ รับเงินเพิ่มฟรี 10% จากยอดที่ทำได้ $$$

2) คลิกที่ปุ่ม 

3) จะมีแบบฟอร์มสมัครสมาชิค ให้เรากรอกข้อมูลให้ครบครับ กรอกเสร็จแล้วให้กดที่ Join Now


4) มันจะขึ้นแบบนี้ครับ คือมันบอกให้เราไปยืนยันอีเมลล์ก่อน


5) ให้เราเข้าไปตรวจสอบ E-Mail ครับ หาหัวข้อที่เขียนว่า Account Confirmation with AdF.ly
ให้หาให้ดีนะครับ อาจอยู่ในถังขยะ ถ้ายังไม่เห็นให้รอสัก 2-3 นาทีครับ เมลล์อาจยังไม่เข้า


6) ถ้าเจอแล้วให้เปิดอ่านครับ จะเจอข้อความประมาณนี้ ให้สังเกตดูจะมีโค้ดอยู่ครับ (บริเวณที่ผมเน้นสีเชียวเอาไว้ตามรูป)


7) ให้ Copy โค้ดจากข้อที่แล้วมาวางไว้ที่นี่ครับ http://adf.ly/confirm.php


8) เสร็จแล้วกดปุ่ม Submit จะเจอหน้านี้ครับ แปลว่าเราสมัครผ่านแล้ว สามารถ Login ได้เลย


ต่อมาผมจะสอนวิธีแปลงลิ้งก์เป็นเงินครับ มาอ่านที่นี่ได้เลย
http://thaiadfly.blogspot.com/2012/02/adfly.html

$$$ วิธีรับเงินเพิ่ม 10% เมื่อสมัครผ่านผม $$$

1. ท่านต้องมีรายได้เกิน 20$ ขึ้นไปครับ
2. ถ้ารายได้เกินแล้วให้โพส ID พร้อมยอดเงินที่ทำได้และบัญชี Paypal ไว้รับเงินลงด้านล่างนี้เลยครับ
วิธีดูไอดีของเรา: ให้ไปที่ http://adf.ly/referrals.php?code จะเห็นโค้ดแบบนี้อยู่ครับ http://adf.ly/?id=xxxxx ให้เอามาเฉพาะ xxxxx ตัวหลัง นั่นแหละครับคือไอดีของเรา

แจกรายชื่อเว็บบอร์ดที่นี่
http://thaiadfly.blogspot.com/2012/04/blog-post.html

วันพุธที่ 24 ตุลาคม พ.ศ. 2555

หาข้อมูล ซ้ำ sql server


/****** Script for SelectTopNRows command from SSMS  ******/
SELECT shopID, COUNT(*)
FROM tbl_shopDeptUnit
GROUP BY shopID
HAVING COUNT(*)>1

วันพฤหัสบดีที่ 11 ตุลาคม พ.ศ. 2555

สร้าง Windows Service และ Installer สำหรับติดตั้งใช้งาน


สร้าง Windows Service และ Installer สำหรับติดตั้งใช้งาน

Windows services เป็น processes ที่ทำงานใน background ไม่มี user interface ที่ติดต่อกับผู้ใช้ Windows Service สามารถเริ่มทำงานโดยอัตโนมัติเมื่อคอมพิวเตอร์เริ่มทำงาน แม้ว่าผู้ใช้จะยังไม่ได้ log in เข้าไปใช้งานก็ตาม ดังนั้น Windows Service จึงเหมาะสำหรับงานที่มีการทำงานอยู่ตลอดเวลา และไม่ต้องการติดต่อกับผู้ใ้ช้โดยตรง เช่น Web Server, Database Server 
โดยในวันนี้เราจะมาสร้าง Windows Service อย่างง่าย โดยทำงานตรวจสอบสถานะการทำงานของเว็บไซด์แล้วเก็บข้อมูลลง text ไฟล์
สร้าง Service Project
1. เปิด Visual Studio สร้าง Windows Service project ตั้งชื่อว่า MonitorWebSite
2.เลือก service designer view เปลี่ยน Name และ ServiceName เป็น MonitorWebsite พร้อมทั้งกำหนดค่า CanPuaseAndContinue และ CanShutDown เป็น True
3.เพิ่ม System.Timers, System.IO, และ  System.Net namespaces เข้าไปใน Service1.cs ด้วยคำสั่งต่อไปนี้
1using System.Timers;
2using System.IO;
3using System.Net;
4. แก้ไข MonitorWebSite class โดยเพิ่มคำสั่งในการสร้าง Timer object ด้วยคำสั่งดังต่อไปนี้
1private Timer t = null;
5. ภายใน MonitorWebSite contructor ทำการสร้าง Timer object และกำหนดให้ Timer เรียกใช้เมธอดทุกๆ 10 วินาที ด้วยคำสั่งต่อไปนี้
1t = new Timer(10000);
2t.Elapsed += new ElapsedEventHandler(t_Elapsed);
6. เพิ่มคำสั่งเข้าไปในเมธอด OnStart ของ MonitorWebSite class เพื่อสั่งให้ Timer เริ่มทำงาน ด้วยคำสั่งต่อไปนี้
1t.Start();
7. เพิ่มคำสั่งเข้าไปในเมธอด OnStop ของ MonitorWebSite class เพื่อสั่งให้ Timer หยุดทำงาน ด้วยคำสั่งต่อไปนี้
1t.Stop();
8. ทำการ override  เมธอด OnPause, OnContinue และ OnShutdown เพิ่มคำสั่งเพื่อสั่งให้ Timer เริ่มและหยุดการทำงาน ด้วยคำสั่งต่อไปนี้
01protected override void OnContinue()
02{
03t.Start();
04}
05protected override void OnPause()
06{
07t.Stop();
08}
09protected override void OnShutdown()
10{
11t.Stop();
12}
9. ภายในเมธอดที่ได้ระบุไว้เป็น  ElapsedEventHandler ให้ทำการเขียนคำสั่งเพื่อตรวจสอบสถานะของเว็บไซด์และเขียนเวลาปัจจุบันและสถานะการทำงานของเว็บลงใน text ไฟล์
พร้อมทั้งดักจับความผิดพลาดที่เกิดขึ้นจากการทำงานด้วย exception handler คำสั่งที่ได้เป็นดังนี้
01void t_Elapsed(object sender, ElapsedEventArgs e)
02{
03    try
04    {
05        // Send the HTTP request
06        var url = "http://www.microsoft.com";
07        var g = (HttpWebRequest)WebRequest.Create(url);
08        var r = (HttpWebResponse)g.GetResponse();
09
10        var text = string.Format("{0} for {1} : {2}", DateTime.Now, url, r.StatusCode);
11
12        WriteTextToFile(text);
13
14        // Close the HTTP response
15        r.Close();
16    }
17    catch (Exception ex)
18    {
19        var text = string.Format("{0} Exception: {1}",DateTime.Now, ex.Message);
20    }
21}
22
23private void WriteTextToFile(string text)
24{
25    // Log the response to a text file
26    var path =
27    AppDomain.CurrentDomain.SetupInformation.ApplicationBase +
28    "log.txt";
29    TextWriter tw = new StreamWriter(path, true);
30    tw.WriteLine(text);
31
32    //close textwriter
33    tw.Close();
34}
10. build project และแก้ไขความผิดพลาดที่เกิดขึ้น (compile time error) ตอนนี้เรายังไม่สามารถใช้งาน service ที่สร้างมาได้เนื่องจาก service ตัวนี้ยังไม่ได้ถูกติดตั้ง
สร้าง Service Installer สำหรับ service ที่ได้สร้างไว้แล้ว
1. เพิ่ม installer เข้าไปใน service project โดย click ขวาที่ service designer
2.  ที่ ProjectInstaller Designer ให้ click เลือก serviceInstaller1 แล้วกด F4 เพื่อเรียก Properties Windows ขึ้นมา
แล้วกำหนด installer พร็อพเพอร์ตี้เป็นดังนี้
StartType Automatic.
Description “Logs responses from Microsoft.com”.
DisplayName “Web Site Monitor”.
รูปประกอบ
หลังจากนั้นให้ click  เลือก serviceProcessInstaller1 แล้วกำหนดค่า propety  Account เป็น LocalSystem. เพื่อให้มีสิทธิ์ในการเขียน text ไฟล์ได้ 
รูปประกอบ
3. กำหนดให้ service project เป็น startup object 
1.เข้าไปที่ project properties windows
2. เลือก Application Tab
3. Startup object: ให้เลือก MonitorWebSite.Program

4. เพิ่ม Setup Project เข้าไปใน solution โดยไปที่ File > Add > New Project > Other Project Types > Setup and Deployment > Visual Studio Installer ตั้งชื่อ project ว่า
MonitorWebSiteSetup
แล้วทำการเพิ่ม output จาก service project ที่ได้สร้างไว้เข้าไปใน setup project
4.1 click ขวาที่ setup project แล้ว เลือก Add > Project Output

ที่ Add Project Output Group Windows 
  1. เลือก MonitorWebSite Project
  2. เลือก Primary output
  3. click OK
5. เพิ่ม custom action สำหรับติดตั้ง service executable ไฟล์ใน application folder
เลือก setup uproject  click ขวา เลือก View > Custom Actions
ที่ Custom Action editor แล้ว click ขวา Add Custom Action..
ที่ Select Item in Project Windows  ให้ double click Application Folder
แล้วเลือก Primary output from MonitorWebSite (Active) แล้ว click OK
ผลลัพธ์ที่ได้
6. Build  setup project
ติดตั้ง เริ่มการทำงานและจัดการกับ service ที่ได้สร้างไว้
1. double click  Setup.exe ที่ได้สร้างไว้และทำการติดตั้ง Windows Service ด้วย default setting
2. เปิด Computer Management, และเลือก Services node.
3. Right-click  Web Site Monitor service, แล้วเลือก Start. สังเกต Services snap-in แสดง Name และ  Description ที่ได้กำหนดไว้ตอนสร้าง Service Project
4. รอประมาณ 30 วินาที แล้วำทำการเปิด text ไฟล์ ที่ทำการ log ข้อมูลการทำงานของเว็บไซด์
ข้อมูลใน log.txt
16/7/2012 11:31:42 AM for http://www.microsoft.com : OK
26/7/2012 11:31:48 AM for http://www.microsoft.com : OK
36/7/2012 11:31:58 AM for http://www.microsoft.com : OK
46/7/2012 11:32:08 AM for http://www.microsoft.com : OK
56/7/2012 11:32:18 AM for http://www.microsoft.com : OK
66/7/2012 11:32:28 AM for http://www.microsoft.com : OK
5. หยุดการทำงานของ service ชั่วคราวรอประมาณ 30 วินาที แล้วตรวจดูว่าจะไม่มีข้อมูลใหม่เพิ่มเข้าไปใน log ไฟล์
6. เปิดให้ service ทำงานต่อ, รอประมาณ 30 วินาที ตรวจดูว่าใน log ไฟล์มีข้อมูลใหม่เพิ่มเข้าไป
7. หยุดการทำงานของ service โดยใช้คำสั่ง net stop monitorwebsite ผ่าน command line
8. uninstall service ด้วยการ double click  Setup.exe แล้วทำตามขั้นตอนในหน้า wizard ที่แสดงขึ้นมา
หวังว่าผู้อ่านจะได้รับความรู้เบื้องต้นในการสร้าง Windows Service นะครับ