[SQL Server] การสร้าง Function ใช้เองใน Database ของเรา ตอนที่ 1(แนะนำ)

Microsoft SQL Server

ปกติแล้ว DBMS จะมีฟังค์ชั่นพื้นฐานในด้านต่างๆมาให้ในระดับนึงได้ อาทิ เช่น ฟังก์ชั่นด้านตัวเลข ได้แก่ SUM, AVG เป็นค้น ฟังก์ชั่นด้านตัวอักษร ได้แก่ Trim(), Replace เป็นต้น แต่บางครั้งงานบางชนิด ฟังก์ชั่นเหล่านี้ไม่สามารถตอบโจทย์ หรือ Business Rule ที่เราต้องการได้ ซึ่งตัว SQL Server หรือ DBMS ตัวอื่น ได้อนุญาตให้เราสร้างฟังก์ชั่นใช้เองได้ หรือ เรียกว่า User-Defined Function (ผมเน้นไปในตัว SQL Server) โดยสามารถสร้างฟังก์ชั่นได้ 3 ลักษณะ ดังนี้ Scalar-valued Function คือ ฟังก์ชั่นที่คืนค่าเป็นข้อมูลชนิดพื้นฐานเพียงตัวเดียว เช่น datetime, int ยกเว้นชนิดข้อมูลแบบ text, ntext, image หรือ timestamp ที่ไม่สามารถสั่งให้คืนค่าได้ โดยการเรียกใช้สามารถเรียกใช้แบบเดียวกันกับฟังก์ที่เคยใช้งานมา โดยส่วนชื่อคอลัมน์ที่ต้องการเข้าไป เช่น SUM, Max เป็นต้น Inline Table-valued Function คือ ฟังก์ชั่นที่คืนค่าเป็นข้อมูลชนิดตาราง ซึ่งมีการทำงานที่ไม่ซับซ้อนมากนัก(ยุ่งเกี่ยวกับ Table หรือ View เพียงอันเดียว) โดยมีจุดสังเกตุเวลาตอนเรียกใช้งานต้องใส่หลังคำว่า FROM Multi-Stalement Table-valued Function คือ มีลักษณะเหมือนกับ Inline Table-valued Function แต่จะมีการทำงานที่ซับซ้อนมาก(ยุ่งเกี่ยวกับ Table หรือ View หลายอัน) จึงต้องมีการสร้างตาราง Temp เพิ่มมาพักข้อมูลก่อนที่จะ Return ตารางออกมา โดยการสร้าง และใช้งานฟังก์ชั่น แต่ละแบบนั้น ผมค่อยเขียนบทความแนะนำต่อไปครับ

[WordPress] เพิ่ม Google Map ลงใน Post หรือ Page ของเรา ตอนที่ 2

จากบทความที่แล้ว ที่ผมได้แนะนำ Plugin MapPress Easy Google Map ไปแล้วนะครับ วันนี้เราจะมาลองใช้งานจริงกันครับ โดยมีสิ่งที่ต้องรู้ดังนี้ เมื่อได้ POI แล้ว เรายัดลง WordPress ยังไง

[WordPress] เพิ่ม Google Map ลงใน Post หรือ Page ของเรา ตอนที่ 1

บางครั้งเวลาที่เราเขียนบล๊อก ที่มีเนื้อหาที่ควรใส่แผนที่ลงไป เพื่อให้ผู้อ่านเข้าใจได้ง่าย ได้แก่ การประชาสัมพันธ์ที่ตั้งบริษัท หรือ การแนะนำสถานที่ท่องเที่ยว ต่างๆ อาทิเช่น บทความรีวิวร้านแว่นตาคนจน (โปรโมทจริงๆ 555) วันนี้ผมมี Plugin มาแนะนำครับ MapPress Easy Google Maps ตัวช่วยที่ให้คุณไม่ต้องมาวุ่นวายกับการเอา Code มาแปะลง บล๊อก(ในเวอร์ชั่นหลังๆ WordPress ไม่ให้ใช้ Tag iframe มาแปะแผนที่แล้ว) ข้อมูล Plugin ทำไมถึงแนะนำ Plugin ตัวนี้ ขั้นตอนการลง การตั้งค่า  มี 6 ส่วนด้วยกัน ตรงนี้จะขออธิบายแบบผ่านๆนะ เพราะ ค่า Default ที่ระบบตั้งมาสามารถใข้งานได้สบายอยู่แล้ว มีรายละเอียดการตั้งค่า ดังนี้ สำหรับตัวอย่างการใช้งาน ผมขอเอาไปเขียนในบทความหน้านะครับ งานยุ่งเหลือเกินช่วงนี้ ^__^

ลองตัดแว่นกับร้านแว่นตาคนจน

ร้านแว่นตาคนจน บรรยากาศหน้าร้าน

หลังจากที่ผมทำงานอยู่แถววงเวียนใหญ่ได้สักพักใหญ่ ผมได้สังเกตุร้านแว่นตาร้านนึงตรงข้ามโรบินสัน ลาดหญ้า ว่าทำไมถึงมีคนเข้าร้านตลอด โดยเฉพาะวันที่ 1 และ 16 ต่างจากร้านแว่นโดยทั่วไปที่นานๆทีจะมีคนเข้ามา และเมื่อวันเสาร์ที่ผ่านมา ผมได้ไปลองใช้บริการแล้ว ทางร้านบริการดีมาก ได้ของเร็วกว่าที่คาดว่า (แว่นตาอันเก่าจำได้ว่าต้องรอถึง 1 สัปดาห์) แถมราคาถูกเหลือเชื่อนะ และจากการสืบข้อมูลเพิ่มเติมพบว่าร้านแว่นตาต่างๆ ฟันกำไร 500 – 800 % O.O ปล. ผมได้ข่าวว่าลุงโกร่ง แกเสียตั้งแต่ปี 63 แล้วนะครับ

[C#] กำหนดให้โปรแกรมของเรา Run As Administrator

C# Logo

ในบางครั้งเราต้องเขียนโปรแกรมเพื่อจัดการข้อมูลที่สำคัญ และต้องมีสิทธิในการแก้ไข เช่น Registry หรือ ไฟล์ของระบบของ Windows เป็นต้น ซึ่งสิทธิที่ใช้ในการจัดการนี้ คือ Administrator นั้นเอง ปกติแล้วเราจะคลิกขวาแล้วให้โปรแกรม Run As Administrator คราวๆนี้ ถ้าเราพัฒนาโปรแกรมขึ้นมา แล้วให้รันเป็น Administrator โดยมีวิธีการ ดังนี้

[MSSQL] SQL บวก ลบวันที่ โดยใช้ DATEADD

Microsoft SQL Server

วันนี้ผมได้งานจากที่่ทำงานมาให้เขียน Query เพื่อแจ้งเตือนสินค้าที่หมดอายุล่วงหน้าตามวันที่กำหนดไว้ ระหว่างวันที่กำหนดจนถึงจำนวนวันที่แจ้งเตือนล่วงหน้า โดยเอาผลลัพธ์ที่ได้มาจัดโปรโมชั่นลดแลกแจกแถมกัน (สมมติว่าเป็น 7 วัน) เลยเป็นที่มาของ Blog “[MSSQL] SQL บวก ลบวันที่ โดยใช้ DATEADD” โดยผมค่อยๆแนะนำไปทีละขั้นตอน ดังนี้ เตรียมข้อมูล

[SQL Server] SELECT เมื่อพบข้อมูลวันที่เป็น 1990-01-01 ให้แสดงเป็น String ว่าง

Microsoft SQL Server

ปัญหาที่ได้เจอวันนี้ คือ SELECT ข้อมูลวันที่ ที่บาง Record เก็บข้อมูลไม่ได้มีการเก็บข้อมูลวันที่ แต่ผลลัพธ์ที่ได้กลับเป็น 01-Jan-1990 (SQL Server ใจดีใส่ให้) ถ้าหาก User มาเห็นคงตกใจ คิดว่าระบบงานของเราเกิด Defect ชิ้นใหญ่แน่นอน เลยได้เป็นที่มาของ Blog SELECT เมื่อพบข้อมูลวันที่เป็น 1990-01-01 ให้แสดงเป็น String ว่าง เตรียมข้อมูล ความต้องการ

[BookFair56] เดินงาน ลุยผู้คน

งานสัปดาห์หนังสือปึ สอง ห้า ห้า หก รถแข่งเลโก้ อยากได้มาก ฮ่าๆ ลองถ่ายสวยงาม หนังสือมิติชน หนุ่มเมืองจันทร์ น้องหมาตรวจตราแข็งขัน ท้องฟ้าวันนั้นสวยงามมาก อีกมุมหนึ่งของงานหนังสือ หนังสือที่ได้คิดว่าราคา 2,700 – 2,800 บาท หรือป่าว ผิดแล้ว ทั้งหมดนี้ซื้อมาด้วยราคา 1,226.50 บาท ^__^

[C#] Windows OEM Information Editor (WorkShop)

C# Logo

จากบทความทั้งสามบทความ หลายคนคงงง และไม่รู้จะเริ่มต้นอย่างไร วันนี้ผมมีตัวอย่างโปรแกรมมาทำเป็น Workshop กันครับ เป็นโปรแกรมที่ใช้เพิ่ม หรือแก้ไขข้อมูล OEM ของ Windows นะครับ OEM คือ อะไร Windows OEM คือ อะไร ปกติแล้วข้อมูล OEM เก็บอยู่ที่ไหน HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\OEMInformation ข้อมูล OEMInformation Registry Value คำอธิบาย Manufacturer ชื่อผู้ผลิต Model รุ่น SupportPhone เบอร์โทรศัพท์ Support SupportURL URL ของบริษัท SupportHours เวลา Support Logo รูปไฟล์ .bmp ขนาดไม่เกิน 120 pixel x 120 pixel

[C#] อ่าน/เขียน Registry ตอนที่ 3 (จัดการ Registry Value)

C# Logo

จากบทความที่สอง เราได้เห็นตัวอย่างการจัดการ Keys และ Subkeys กันแล้ว ต่อไปบทความนี้สอนการใช้งานจริง โดยผมได้เพิ่มคำสั่งที่จำเป็นเพิ่มเติม เพื่อการทำงานที่มีประสิทธิภาพมากยิ่งขึ้น โดยผมได้แยกกรณีที่จำเป็นต้องใช้ ดังนี้ กรณีที่ 1 : อ่าน Value จาก Registry โดยมีขั้นตอนการทำงาน กรณีที่ 2 : เขียน Value และสร้าง Value โดยมีขั้นตอนการทำงาน กรณีที่ 3 : ลบ Value โดยมีขั้นตอนการทำงาน