การตรวจสอบ Regional Setting ว่าเป็น พ.ศ. หรือ ค.ศ. ใน VB6 และ VB.NET

สามารถใช้ CODE ตามนี้ได้เลยครับ Code สำหรับ VB6 Code สำหรับ VB.NET
สามารถใช้ CODE ตามนี้ได้เลยครับ Code สำหรับ VB6 Code สำหรับ VB.NET
เมื่อวานได้ไปงาน Android Workshop ที่จัดโดยกลุ่ม GDG ซึ่งผมได้เทคนิคใหม่ในการจัดการกับ UI ของ Android (จริงเคยเขียนตอนสมัยบุกเบิก 55 แต่ตอนหลังต้องจากไปทำโปรเจตจบที่ใช้ WebGL แทน) และในงานนี้มีการนำเสนอ Model รูปแบบการสร้างรายได้จากการพัฒนา App บนมือถือ ตรงนี้สามารถนำไปประยุกต์ใช้ได้กับทุกๆค่ายนะ ^___^ มีหลายแบบ Freemium, Paid, Paidmium, In-App Advertising, Subscription, Dynamic ตารางเปรียบเทียบ Business Model แบบต่างๆ Business Model การทำงาน ตัวอย่าง App ที่ใช้งานจริง Freemium App ฟรี และมี in-app purchases เพิ่มเข้าไป World Conquer: เกมที่ใช้คุณสวมบทบาทเป็นแม่ทัพในสมัยสงครามโลก นำทหารต่อสู้ เพื่อชัยชนะLine Cookie Run: อันนี้คงไม่ต้องอธิบายนะ 555 Paid App เสียเงินครั้งเดียวจบ Camera FV-5: App ถ่ายรูปที่จะทำให้กล้องธรรมดาเป็น DSLR ได้Where ‘s My Water: เกมฝึกสมองที่ผู้เล่นต้องสร้างทางให้น้ำไหลได้ Paidmium App เสียเงิน และมี in-app purchases (กินกันสองทาง) FIFA 13: เกมฟุตบอลยอดนิยม ที่คุณสามารถเลือกซื้อนักเตะเพิ่มเติมได้Money Lover: App บันทักรายรับ-รายจ่าย ที่คุณสามารถซื่อ ICON Pack เพิ่มเติมได้ In-App Advertising App ที่การแสดง banner โฆษณา โดยอาจจะเป็นข้อความ หรือ Video ก็ได้ IETS Prepare: App สำหรับทบทวน…
สำหรับฐานข้อมูลของทุกๆค่าย ตัวเนื้อของ Database มีไฟล์ที่สำคัญอยู่ 2 ตัว ได้แก่ คราวนี้มาดูที่ตัวของ MS SQL บ้างดีกว่า ว่าไฟล์กลุ่มนี้มีอะไรบ้าง จากหัวเรื่อง Blog นี้จั่วหัวในเรื่องของ Database Log File ไว้ เรามาดูกันดีกว่ามันมีการทำงานอย่างไร เริ่ม Database ทำงาน รู้แล้วว่าอะไร ที่มันต้อง Log บ้าง คราวนี้ลองมาดูโครงสร้างแบบ Logical(Virtual Log) ของ Log กัน โดย Log แต่ละตัวมี ID ประจำของมัน ก็ คือ Log Sequence Number (LSN) ซึ่งเรียงกันไปเรื่อยๆ ดังรูป โดย Log มันยังไม่ได้ลง Disk ที่เป็น Physical ทันทีนะครับ มันถูกเก็บลงใน Buffer เพื่อพักข้อมูลไว้ก่อน เพราะถ้าเอาลง Disk เลยจะเจอปัญหา I/O ได้ โดยจะรอจนถึง เงื่อนไขที่กำหนด ว่าควรย้ายจาก Buffer ลง Disk เราเรียกจุดนี้ว่าเป็น Check Point ครับ ซึ่ง Check Point ของเจ้าตัว SQL Server มีหลายแบบ ผมติต่างเป็นแบบ Automate Check Point (ง่ายดี) แล้ว Log พวกนี้มันช่วยเราในการ Recovery อย่างไรหละ ตอนนี้ต้องรู้คำศัพท์หลายคำเลย จากรูปนี้ เรามาลองไล่กันดีว่า ถ้ามีสถานการณ์ตัวอย่าง เอาจากรูปที่นะครับ อะไร คือ MinLSN ถ้าระบบมีปัญหา พบว่าระบบมีการทำ Check Point ที่…
หลายคนๆ คงอ่านหัวข้อแล้ว อาจจะงง 55 เพราะว่าส่วนใหญ่มีแต่การ Migrate ข้อมูลจาก IBM DB2 ไป Microsoft SQL Server กัน แต่นี่ คือ Require ของลูกค้า (ลูกค้า คือ พระเจ้า) โดยผมขอสรุป สิ่งที่ต้องสังเกตุ และระวังในการย้ายข้อมูลจาก Microsoft SQL Server ไป IBM DB2 ซึ่งจะส่งผลให้ Application ที่กำลังพัฒนาอยู่เกิดผิดพลาดได้ ดังนี้
หลายครั้งที่เราได้โจทย์ หรือปัญหามาแก้โดยใช้วิธีการ Query จากฐานข้อมูลมา ซึ่งมีรูปแบบการ Query หลายแบบ ได้แก่ การเขียน JOIN ตาราง, UNION หรือ ทำเป็น Sub Query เป็นต้น ในวันนี้ผมขอนำเสนอวิธีการเขียน SELECT IN SELECT ซึ่งเป็นวิธีการเขียน Query แบบหนึ่งที่ช่วยแก้ปัญหาได้มากมาย และลดการเขียน Coding ที่ไม่จำเป็นได้อีก ตัวอย่างปัญหา เราต้องการดูข้อมูลการจ่ายดอกเบี้ยทั้งหมด เพื่อนำมาออกรายงาน โดยมีเงื่อนไขดังนี้ ข้อมูลที่ใช้กับตัวอย่างนี้ ขั้นตอนการแก้ปัญหา (ถ้ามีการเขียน SQL ผมขอใช้ SYNTAX ของ SQL Server นะครับ) โดยใช้ Query ที่มีการตรวจสอบเงื่อนไขของ DATE FROM กับ DATE TO ว่าเป็นเดือนเดียวกัน หรือต่างเดือนกัน ดังนี้ โดยจะ SELECT ซ้อนครอบอีกขั้นนึง เพื่อที่เอาผลลัพธ์ที่ได้จาก Query ก้อนด้านในมา SUM หาผลรวมอีกที ดังนี้ หมายเหตุ: โจทย์นี้อาจจะมีวิธีการอื่นๆในการเขียน Query เพื่อให้ได้ผลลัพธ์ที่เหมือนกัน แต่ที่ผมยกตัวอย่างนี้มา เพื่อที่จะสร้าง Idea และแนวทางให้การปรับประยุกต์ใช้ต่อไปนะครับ
ตอนแรกทำงานไป ทำงานมา ก็เกิดสงสัยว่า JOIN นี่มีกี่แบบ โดยมีคำถามหลายข้อเลย โดยผมขอสรุปเป็นข้อๆ ดังนี้คำถาม: LEFT JOIN กับ LEFT OUTER JOIN ต่างกันอย่างไรคำตอบ: ไม่ต่างกันเลย การทำงานเหมือนกัน คำถาม: INNER JOIN กับ OUTER JOIN ต่างๆกันอย่างไรคำตอบ: INNER JOIN เอาข้อมูลมาที่เหมือนกันท้ังสองฝั่งมาเทรวมกัน(Intersect) กัน แต่ OUTER JOIN เป็นการเทข้อมูลทั้งฝั่งใดฝั่งหนึ่ง หรือทั้งสองฝั่งมารวมกัน(Union) คำถาม: แล้วมีการ JOIN แบบอื่นๆ หรือไม่คำตอบ: มี โดยผมขอเกริ่นสรุปรูปแบบการ JOIN ของ TABLE ก่อน เพื่อเป็นการท้าวความหลังก่อนนะครับ ตาราง A ตาราง B ผลลัพธ์ที่ได้จากการ CROSS JOIN (A, B) หมายเหตุ Update 2022-04 มันมีอีกแนวคิดที่จะ Visualize Join อีกแบบ โดยใช้ “Checkered Flag Diagram” เพราะมีหลายแนวคิดที่มองว่าเอา Set Operation เอามาใช้เทียบมันไม่เหมาะครับ Ref: – You Should Use This to Visualize SQL Joins Instead of Venn Diagrams | by Andreas Martinson | Towards Data Science- Say NO to Venn Diagrams When Explaining JOINs – Java, SQL and jOOQ.
ช่วงนี้ได้ลองวิจัยฝุ่น พัฒนาโปรแกรมเพื่อช่วยให้การทำงาน ง่ายและสะดวกขึ้น โดย Tool ที่ทำเพิ่มต้องมีความสามารถในการ Register / Unregister DLL ได้ จากการลองศึกษาข้อมูลมาพวกว่า Microsoft ได้ทำ Tools ขึ้นมาสองตัว ได้แก่ Regsvr32.exe และ Regasm.exe โดยสองตัวนี้ มีหน้าที่ที่เหมือนกัน คือ จัดการกับ DLL แต่ส่วนที่ต่างกัน คือ หมายเหตุ: ถ้าว่างๆผมจะมาเขียนบทความเกี่ยวกับการ Register / UnRegister DLL โดยใช้ภาษา C# กันนะครับ แหล่งอ้างอิง:
หลายคนคงใช้ Google แล้วกินแรมสุดๆ เครื่งช้ามาๆ วันนี้ผมมีเทคนิคและน้อยๆมานำเสนอครับ โดยการเพิ่ม Parameter ใน Google Chrome เพื่อจัด Process การทำงาน โดยมีวิธีการ ดังนี้ หลายคนคงสงสัยกันว่า parameter ที่ผมได้เพิ่มเข้าไป มัน คือ อะไร ?เดี๋ยวผมขออธิบายเลยและกัน ใน Google Chrome มีรูปแบบการจัดการ Process เป็นแบบ Multi-Process Model คือ งานแต่ละอย่างแยกเป็น 1 Process ทั้ง Control, Tab, Extension และ Plug-in โดยสำหรับ parameter จัดการ Process เหล่านี้จะมี 3 แบบ ได้แก่ เพิ่มเติม: สำหรับคนที่วาง Google Chrome ปักไว้บน Taskbar สามารถที่จะเข้าไปปรับแก้ process ของ Google Chrome ได้ผ่านทาง path นี้นะครับ C:\Users\ชื่อ Username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar หมายเหตุ: ถ้าอยากลองปรับแต่ง Parameter เพิ่มเติม ผมมีมากแนะนำอีก 2 ตัวนะครับ
หลังจากทำงานมา 1 ปี ผมก็ได้มีโอกาศอยู่ Standby รอรับปัญหาจาก User วันแรก ซึ่งวันแรกเนี่ยแหละ ผมเขียน Query ผิด ลืม Where และเข้าใจว่าโปรแกรมที่ใช้ Toad for DB2 ตัวใหม่ ซึ่งลองเอามาใช้แทนตัว WinSQL ที่มันเก่ามากแล้ว มัน Default Auto Commit = off แล้ว แต่มันปรากฏว่าไม่ใช้ ดังนั้นผมจึงขอนำเสนอวิธีการปิด Auto Commit สามารถดูตามรูปภาพที่แนบมาได้เลยครับ ปล. วิธีการนี้สามารถประยุกต์ใช้กับโปรแกรม Toad for SQL Server, Toad for MySQL และอื่นๆ
ทำไมใช้ No. แทน Number ทั้ง ๆ ที่ไม่มีตัว o อยู่ในคำนั้น คำตอบก็เพราะ No. เป็นอักษรย่อของ numero ซึ่งเป็นภาษาละตินอันแปลว่า number นั่นเอง