หลังจากประสบปัญหาของไวรัสที่ติด flash drive หรือบางทีเสียบ flash drive เข้าไปแล้วเครื่องคอมแฮงค์ ทำให้ต้องปวดหัวอยู่เรื่อยๆ เรามาป้องกันแบบถาวรดีกว่า มี 3 วิธีดังนี้
1. Disable AutoRun/AutoPlay
หลักการของไวรัสประเภท flash drive ก็คือ autorun (เปิดแบบอัตโนมัติ) วิธีแก้ก็เลิก autorun ซะ ขั้นตอนการ disable autorun (ยกเลิกการเปิดแบบอัตโนมัติ) มีดังนี้
1) คลิกปุ่ม Start --> Run เมื่อปรากฏไดอะล็อกบ็อก Run ให้พิมพ์ gpedit.msc ลงในช่องว่าง
gpedit.msc
Exception Handling
คราวนี้จะพูดถึง Guideline ในการ Handle Exception
โดยดูจากของ Microsoft
1. การ Report Exception ควรจะ throw Exception ไม่ใช้ return error code
เนื่องจาก Exception เป็นกลไกหลักของ .NET ในการแจ้ง Error
การ return error code อาจจะทำให้ client เข้าใจว่าไม่มีความผิดพลาด
และการใช้ Exception คุณยังได้ Stack Trace ที่ช่วยในการ Debug
และเมื่อเกิด Exception จะทำให้ Flow ของ code หลุดออกจาก code ที่ไม่ได้ Handle
ทำให้ความเสียหายไม่เกิดกับ Code ดี ๆ
ขั้นตอนที่ 1 : ลงทะเบียนที่ Google Map
เราต้องลง ทะเบียน API KEY กับ google ก่อน
ที่ http://code.google.com/intl/th/apis/maps/signup.html
ถ้าเราใช้ localhost ก็ใส่ localhost หรือ 127.0.0.1 ก็ได้
หลังติ๊กที่ checkbox I have read and agree with the terms and conditions (printable version) กด Gennerate key เราจะได้ API มาชุดหนึ่ง
สมมุติว่าใช้ http://localhost แล้ว generate จะได้
ไปอ่านเจอมาจาก ที่นี่ ครับ
คือว่า Oracle จะมี Command wm_concat ไว้สำหรับ Join string
แต่ Sql ดันไม่มีคำสั่งนี้ ซะนี่
วิธีแก้ไขคือใช้คำสั่ง FOR XML ครับ
สมมติว่า ต้องการ join Col1 จากตาราง Table1 ด้วย comma
เขียนอย่างนี้ครับ
SELECT
(SELECT Col1 + ', '
FROM Table1
FOR xml path('')) AS csv
เมื่อเร็ว ๆ นี้ มีคนไป Uninstall แล้วก็ Install Sql Server ใหม่ (ในเครื่อง Production)
ซึ่งในนั้นก็มี Database ของ Program ผมรวมอยู่ด้วย
ทำให้ผมต้องไป Attach แล้วก็ Test Program ใหม่
สืบไปสืบมา ได้ความว่ามีคนไปเปลี่ยนชื่อเครื่อง Server (ด้วยความจำเป็นบางอย่าง)
ประเด็นคือ เมื่อใดก็ตามที่เปลี่ยนชื่อเครื่อง ก็ควรไป Rename Sql Server ด้วย
เพราะ Feature บางอย่างมันอ้างถึง ServerName ของ Sql Server ไม่ใช่ชื่อเครื่อง
แต่พี่แกเล่นแก้โดยการ Uninstall ใหม่ซะเลย Smiley
เลยเอา Script สำหรับเปลี่ยนชื่อ ServerName มาฝากกัน
sp_dropserver 'old_name'
GO
sp_addserver 'new_name', LOCAL
GO
ปกติเราใช้ Function RAND() เพื่อสร้าง Random number
แต่ RAND() มีปัญหาอย่างหนึ่ง คือ มันไม่สามารถสร้าง Random number ในทุก ๆ บรรทัดของ Query ได้
เช่น
1. select RAND()
2. from Table1
จะได้ผลลัพธ์เป็น
1. ----------------------
2. 0.743651588693238
3. 0.743651588693238
4. 0.743651588693238
5. 0.743651588693238
6. 0.743651588693238
จะเห็นว่าตัวเลขในแต่ละบรรทัดเหมือนกันหมด
วิธีแก้คือให้ใช้ Function NEWID() ครับ
ซึ่ง NEWID จะได้ค่าที่ Random จริงแต่ต้องแปลงเป็นตัวเลขก่อน
เขียนอย่างนี้ครับ