ทำไมใช้ No. แทน Number

ทำไมใช้ No. แทน Number ทั้ง ๆ ที่ไม่มีตัว o อยู่ในคำนั้น คำตอบก็เพราะ No. เป็นอักษรย่อของ numero ซึ่งเป็นภาษาละตินอันแปลว่า number นั่นเอง
ทำไมใช้ No. แทน Number ทั้ง ๆ ที่ไม่มีตัว o อยู่ในคำนั้น คำตอบก็เพราะ No. เป็นอักษรย่อของ numero ซึ่งเป็นภาษาละตินอันแปลว่า number นั่นเอง
ช่วงวันหยุดสงกรานต์ ผมได้อ่านบทความท่มีประโยชน์ตามลิงค์ The Seven Wastes of Software Development – DZone (จริงๆอ่านเจอมานั้นและ แต่ไม่มีเวลาอ่าน 555) โดยเท่าที่ลองอ่านสแกนคร่าวๆมา ผมขอสรุปเนื่อหาสั้นๆนะครับ ก่อนอื่นเลย เราตีความคำว่า waste หมายถึง อะไร ถ้าลองค้นหาในพจนานุกรมดู พบว่ามันแปลว่า ขยะ หรือ สูญเสียไปโดยไร้ประโยชน์ การพัฒนา Software ก็มีขยะพวกนี้เหมือนกัน ซึ่งในบทความนี้จะนำเสนอขยะ หรือ ลงแรงโดยป่าวประโยชน์ ในการพัฒนา Software มีอะไรบ้างนะครับ โดยผมจะเปรียบเทียบกับ 7 waste of Production ที่จะกล่าวถึงขยะของการผลิต(manufacturing) แหล่งข้อมูล
วันนี้ผมได้รับงานมาให้แก้ไขรายงานด้วย Crystal Report ชิ้นนึง เพื่อเพิ่ม Field และจัดกรุ๊ปใหม่ ปัญหามันอยู่ที่ว่า Database Field เจ้ากรรมดันไม่มี Field ที่ผมได้เพิ่มใน DB ? ผมก็เลยไปเอา Data Source ออกไป และสร้างตัดใหม่เข้ามาแทน ผลปรากฏว่าพอทดสอบรันทำ Unit Test เจอ Error Message ” There must be a group that matches this field.” สาเหตุ เกิดจากการไปเอาตัว Data Source ออกไป ทำให้ข้อมูล Group หายไปด้วย รวมถึง Formular Field ที่เราคำนวณสดทั้งหลาย แนวทางแก้ไข ให้คลิกขวา Set Data Source Location จากนั้นเลือก Table อันใหม่เข้าไป และกด Update
วันนี้มีเพื่อนที่ทำงานถามว่าจะเพิ่มคอลัมน์ เพื่อบอกลำดับของข้อมูลอย่างไร เพราะใน DB ก็ไม่ได้เก็บอยู่แล้ว จะเขียนใน Query หรือ มา Loop และ Count เองใน Code ดี ข้อมูลใน DB (Input) Firstname | Lastname | Salary กอไก่ | ไข่เจียวหมูสับ | 50,000 ขอไก่ | เกิดก่อนไก่ | 60,000 คอควาย | รวยนะจ๊ะนะ | 200,000 ผลลัพธ์ที่ต้องการ (Output) No | Firstname | Lastname | Salary 1 | กอไก่ | ไข่เจียวหมูสับ | 50,000 2 | ขอไก่ | เกิดก่อนไก่ | 60,000 3 | ค.ควาย | รวยนะจ๊ะนะ | 200,000 จากที่เกริ่นทิ้งไว้ ว่ามี 2 ทางให้ทำ คือ Query ออกมาเลย หรือ เอาข้อมูลมา Loop Code เอาเอง ซึ่งในกรณีนี้ ผมขอ Query…
ก่อน Create & Import Database การ Create & Import Database การ Import ข้อมูลโดยเจาะจงเฉพาะบาง Table
เมื่อวันก่อนได้งานจากหัวหน้าให้เขียน Script เพื่อจัดการ User กับสิทธิื หลังการ Restore ฐานข้อมูล เมื่อลองเขียนคำสั่งเพื่อ Drop User พบ Error Message ดังนี้ The database principal owns a schema in the database, and cannot be dropped. (Microsoft SQL Server, Error: 15138) จาก Error Message ด้านบน สามารถสรุปสาเหตุของปัญหานั้น เกิดจาก User ที่เราต้องการจะ Drop นั้นเป็นเจ้าของ Schema ของฐานข้อมูลนี้ โดยเราสามารถตรวจสอบ Schema ที่ User นั้นๆจัดการอยู่ จากคำสั่ง SQL ดังนี้ หมายเหตุ: sys.schemas มองง่ายเลย คือ กระดาษ Note ที่เก็บข้อมูล Schema ของฐานข้อมูลนั่นเอง จากข้อมูลข้างต้นได้แสดงให้เห็นว่า User invest เป็นเจ้าของ Schema INVEST อยู่ เราจึงไม่สามารถ Drop User ได้ เราจึงจำเป็นต้องโอนสิทธิ์การดูแล Schema INVEST ไปให้ User อื่น เช่น dbo ตามคำสั่ง ดังนี้ ทดสอบ SELECT Schema ที่ User ดูแลด้วยคำสั่ง ดังนี้ ทดสอบ Drop user อีกครั้งพบว่าสามารถทำได้ ดังรูป
ถึง VB6 เป็นเทคโนโลยีที่เก่า ล้าสมัยไปแล้ว แต่อย่าลืมว่าระบบงานบางระบบยังคงใช้ภาษานี้อยู่ ซึ่งการปรับเปลี่ยน หรือ Port ไปทั้งระบบ อาจจะมีค่าใช้จ่ายที่สูง ทางที่ดีที่สุด คือ พัฒนาส่วนเสริมให้มันต่อไปเรื่อยๆ วันนี้ผมจะมาแนะนำการ Validate ข้อมูลโดยใช้ Regular Expression (ตกใจหละซิ เพราะหลายคนคิดว่ามันน่าจะมีใน Java / C# กัน) โดยผมจะแนะนำขั้นตอนการทำ โดยใช้ตัวอย่างของการนำ Regular Expression มาหา IP Address ที่อยู่ในช้อความ ตามขั้นตอน ดังนี้ สิ่งที่ควรู้รู้ก่อนดูตัวอย่าง Code การใช้งาน ตัวอย่าง Code การใช้งาน ผลการทำงาน Download ตัวอย่าง Source Code แหล่งข้อมูล
เชื่อว่าหลายๆคนคงชื่อมือถือ Lenovo รุ่น P780 มาให้ แต่ Rom มันเก่ามาก คือ รุ่น P780_ROW_S110_130629.rar และมันก็ไม่อัปเดตอะไรด้วย รวมถึง Rom นี้มันยังไม่ได้ Optimize ถึงทำให้มีพื้นที่เหลือให้ลงโปรแกรมเพียง 100-200 MB เท่านั้น วันนี้ผมมาแนะนำการลง Rom รุ่นใหม่กว่า คือ P780_ROW_S116_130828.rar ซึ่งมีพื้นที่เหลือถึง 700 MB และสามารถอัปเดตแบบ OTA ได้ด้วย สิ่งที่ต้องมี ขั้นตอนการ Flash Rom แหล่งที่มาของข้อมูล
จากบทความที่แล้วที่ผมได้แนะนำเรื่องการสร้างฟังก์ชั่นใช้เองใน Database (User-Defined Function)ของเรา วันนี้ผมมาแนะนำการสร้างฟังก์ชั่นรูปแบบแรก Scalar-valued Function กันนะครับ Scalar-valued Function คือ อะไร Scalar-valued Function คือ ฟังก์ชั่นที่คืนค่าเป็นข้อมูลชนิดพื้นฐานเพียงตัวเดียว เช่น datetime, int ยกเว้นชนิดข้อมูลแบบ text, ntext, image หรือ timestamp ที่ไม่สามารถสั่งให้คืนค่าได้ โดยการเรียกใช้สามารถเรียกใช้แบบเดียวกันกับฟังก์ที่เคยใช้งานมา โดยส่วนชื่อคอลัมน์ที่ต้องการเข้าไป เช่น SUM, Max เป็นต้น การสร้าง Scalar-valued Function ใน MS SQL Server เริ่มสร้าง Function ซึ่งเราสามารถสร้าง Scalar-valued Function ได้สองวิธี ดังรูป เมื่อเลือกเมนูเรียบร้อย SQL Server สร้างโครงสร้าง Function ให้มา เพื่อเป็น Guideline ในการพัฒนา โดยมีรายละเอียด ดังรูป หมายเลข 1 คือ ส่วนของ Function Declaration ที่กำหนดชื่อ และ Return Type ของ Functionหมายเลข 2 คือ กำหนดตัวแปร เพื่อเอาไว้ใช้ในการ Returnหมายเลข 3 คือ ส่วนที่เอาไว้แสดงแนวคิดการทำงานของฟังก์ชั่นต่างๆหมายเลข 4 คือ คำสั่งที่ใช้ Return ตัวแปรที่กำหนดไว้ในหมายเลข 2 เมื่อเขียนคำสั่งเสร็จแล้ว ให้กด Execute เพื่อให้ฐานข้อมูลตรวจสอบความถูกค้องของ Syntax และเป็นการบ่อกให้ DBMS รับรู้ถึงการมีฟังก์ชั่นนี้ ตัวอย่างโจทย์ สร้างฟังก์ชั่น ShiftWorkingDay อย่างง่าย ซึ่งมีหน้าที่ในการเลื่อนวันออกไปเป็นวันทำการถัดไป เช่น ถ้าเลือกวันที่ที่ส่งเข้ามาวันอาทิตย์ ระบบต้องเลื่อนเป็นวันทำการถัดไป คือ วันจันทร์นั่นเอง โดยมี Parameter…
ปกติแล้ว 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 ตารางออกมา โดยการสร้าง และใช้งานฟังก์ชั่น แต่ละแบบนั้น ผมค่อยเขียนบทความแนะนำต่อไปครับ