[DB2] DB21007E seen when DB2 is accessing a text file

IBM DB2

จริงๆ ฺBlog อันนี้เป็นสาเหตุของ Blog นี้ครับ [PowerShell] Convert Unicode Text or SQL File To ASCII โดยสาเหตุของ Error Message นี้เกิดจากตัว line termination (ตัวบอกการขึ้นบรรทัดใหม่) ไม่ได้ใช้ตามมาตรฐาน ANSI ซึ่งจะใช้ (Carriage Return, ตัวย่อ CR, ASCII Code =13) เมื่อเรานำไฟล์จาก Windows ไปใช้งานบน Unix หรือ Linux นะครับ โดยการแก้ไขนั้นง่ายนิดเดียวครับ Reference

[DB2] WORKING WITH ISOLATION LEVEL

IBM DB2

ดองไว้นานมาสำหรับ Blog นี้ 555 เพราะตอนแรกได้ทำ Research เพิ่มคิวการทำงาน โดยใช้ Database เป็นตัวเก็บคิว ซึ่งปัญหาที่จะพบ คือ เราต้องควบคุมการดึงข้อมูลใน Step ต่างๆ เพื่อไม่ให้เกิดปัญหาหลุคคิวได้ โดยทางฝั่ง SQL Server มีคำสั่งใช้งานตรงตัวอยู่แล้ว อาจจะมีฟีเจอร์เพิ่มขึ้นมาจากที่กำหนดไว้ใน ANSI บ้าง ซึ่งผมมาเขียนสรุปใน Blog ถัดไปครับ คราวนี้เรามาลองดูที่พระเอกของเราบ้าง อย่าง DB2 เนี่ย ว่าเราใช้งาน ISOLATION LEVEL กันอย่างไรครับ ก่อนอื่น ผมขอสรุปเรื่อง ISOLATION LEVEL แบบรวบรัดสุดๆก่อนนะ ว่ามันมีอะไรบ้าง และทำไมต้องมีนะISOLATION LEVEL คือ ระดับการจัดการของข้อมูล เพื่อให้ Transaction นั้นถูกต้องโดยไอ้เจ้า ISOLATION LEVEL ตามมาตรฐาน ANSI ได้กำหนดไว้ว่าทุกๆ DBMS ต้องมีอย่างน้อย 4 อย่าง ได้แก่ ANSI Isolation Level DB2 Isolation Level READ UNCOMMITTED Uncommitted read (UR) READ COMMITTED (default) Cursor stability (CS) REPEATABLE READ Read stability (RS) SERIALIZABLE Repeatable read (RR) หมายเหตุ: ตัว DB2 ตัว DBMS default เป็น Cursor stability ครับ ตัวอย่างการใช้งานบ้าง Reference

[PowerShell] Convert Unicode Text or SQL File To ASCII

powershell

สำหรับที่มาของ Script ชุดนี้นี่ทำ Team วุ่นวายเลย เรื่องก็มีอยู่ว่าเวลาพัฒนาระบบต่างๆมันมีในส่วนของ Source Code และ SQL Script ซึ่งต้องนำไป Run ใน Enviromemt ของ Test, Dev หรือ Production ก็ตาม แต่เพราะความสะเพร่าของผมเองที่ Save File Script เป็นแบบ Unicode เกิดปัญหาขึ้นเมื่อนำไป Run บน Database Server DB2 บนเครือง AIX จะเกิด Error Message ดังนี้ Error DB21007E seen when DB2 is accessing a text file เพราะ End of File ของแต่ละ Encoding ในระบบปฏิบัติการ(Windows, Linux หรือ Unix) แต่ละแบบนั้นไม่เหมือนกัน ทางแก้ คือ เปลี่ยนมาใช้ Encoding ที่เป็น ANSI เพราะเป็นมาตรฐานกลางครับ แต่งานงานนึง มันคงไม่ได้มี Script แค่อันเดียว ผมเลยทำ PowerShell Script สำหรับแปลง Encoding ของ Text File หรือ SQL File จาก Unicode ไปเป็น ANSI ครับ (จริงๆอยากเขียนเป็น Unix Shell เพราะไม่ได้ทำนานและ แต่ขึ้เกียจลง VM 55) ต่อมาเราก็มาทดสอบกัน ขั้นแรก: เตรียมไฟล์ที่มี Encoding Unicode ดังรูป…

[PowerShell] Integrated PowerShell with C# Application

powershell

มาต่อบทความการใช้ C# กับ PowerShell สักที หลังจากไปลองสร้าง Winform Application จาก PowerShell เพียวๆกันแล้ว โดยคราวนี้ เราใช้โจทย์ของคราวที่แล้วแหละ โดยมีการออกแบบหน้าจอ ดังรูป จัดการ Add Code Event ต่างๆให้เรียบร้อย (อันนี้ผมใช้ Pattern MVP นะครับ เผื่อคนโหลดไปแกะ Code)จากนั้น เราต้องทำให้ C# รู้จักกับ PowerShell กันก่อน โดยการ Add Reference DLL เข้ามาใน Project ครับ โดยเราจะ Add DLL System.Management.Automation แต่ก่อนที่เรา Add DLL เข้ามาใน Project ของเรา ผมอยากให้ตรวจสอบ Version ของ PowerShell ครับ เพราะมันต้องเลือกให้เหมาะกับเวอร์ชัน Target Framework ในของ Project เราด้วยนะครับ โดยผมได้สรุปเป็นข้อมูล ดังนี้ .Net Framework PowerShell .NET Framework 3.5 PowerShell 2.0 .NET Framework 4.0 PowerShell 3.0 .NET Framework 4.5 PowerShell 4.0 เมื่อตรวจสอบเวอร์ชั่นของ DLL และ Target Framework ของ Project เราเรียบร้อยแล้ว เริ่มทำการ Add Reference DLL System.Management.Automation ซึ่งอยู่ใน Path C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\-เวอร์ชั่น- โดยของผมก็จะเป็น C:\Program Files (x86)\Reference…

[Visual Basic] Run time error 28- Out of stack space

หลายครั้งที่เราเขียนโปรแกรม อาจจะเจอ Error มาบ้าง แต่ Error วันนี้ผมว่าเป็นกรณีศึกษาที่ดีสำหรับคนที่เขียน VBA กับ VB6 นะครับ โดยเฉพาะคนที่ชอบเขียนโปรแกรม โดยอาศัย Event ต่างๆนะครับ ระวังจะทำให้เกิด Recursive ของ Event ทำให้เกิด Run time error 28- Out of stack space ดังตัวอย่างต่อไปนี้ ถ้ามีโจทย์ หรือ Business ที่ว่า ถ้า Check Box A ถูกติ๊กแล้ว  Check Box B ต้องไม่ติ๊ก เมื่อเรา Assign ค่าให้กับ Check Box จะทำให้เกิด Event Check ขึ้นนะครับ ทำให้โปรแกรมของเราเกิด Error นะครับ ท้าย่ที่สุดต้องมากำหนด Flag ดัก เพื่อมากันเรื่องนี้ครับ    

ปิด “Security and NQ Mobile” ไม่ให้มีแถบแสดงเตือนมากดให้เสียตังค์อีก

หลายคนคงได้อัพ ROM Kitkat ของ Lenovo กันแล้ว อย่างใน Blog ที่แล้วผมได้มีประเด็นอยู่ คือ ตัว Antivirus ที่ให้มา 2 ตัว ได้แก่  Security and NQ Mobile กับ Norton Mobile (ฝังมากับ ROM เลย เอาออกได้ แต่ยากครับ) ซึ่งแต่ละตัวมี Pop up ให้เรากด เพิ่ม Load โปรแกรม หรือ Update ข้อมูล ทำให้เราอาจจะต้องเสียตังค์ฟรี ทำให้เครื่องช้า และเปลืองแบตด้วย วันนี้ผมนำเสนอวิธีปิดการทำงานของโปรแกรม เพื่อไม่ให้มีการแจ้งเตือนมากกวนใจเราอีกนะครับ ดังนี้ครับ วิธีแรกถอนรากถอนโคน โดยการ Root ครับ (แต่ ROM Version ใหม่ ถ้าเรา Root แล้ว เวลา Update ระบบมันจะลบข้อมูลเดิมออกไปด้วย ตรงนี้ โดยวิธีนี้ผมไม่ขอกล่าวถึงนะครับ ลองไปหาวิธีดูครับ โดยมี App Framaroot  กดปุ่มเดียวจบครับ แต่ไม่แน่ใจว่ารองรับ ROM Version ใหม่ๆ หรือยัง (ณ วันที่ 28-09-2014  ROM ของ Lenovo เป็น Version ล่าสุดจะเป็น P780_ROW_S226_140919) ครับ วิธีที่สองปิดการทำงานของโปรแกรมพอ (อาจจะมีบาง Service บางส่วนที่ยังทำงานอยู่ แต่อย่างน้อยก็ไม่มีหน้าจอ หลอกให้เรากดไปแล้วเสียเงินครับ) โดยผมลองปิดตัว Security and NQ Mobile ครับ ตามมากันได้เลย เ้ข้าไปที่ “Setting” (รูปฟันเฟือง) เลื่อนลงมาล่างสุด เลือกเมนู  “แอปพลิเคชั่น”หรือ…

Economy of Scale กับ Return to Scale

จริงๆ ผมไม่ค่อยรู้ความหมายของคำนี้หรอก 55 แต่พอลงทุนให้หุ้น ผมต้องหาความรู้เพิ่มเติมเหมือนกัน เพราะ เราจะมั่นใจว่าเงินมันทำงานแทนเราได้ เราต้องมีความรู้ก่อน เพื่อจัดสรรให้เงินมันทำหน้าที่ของมันได้เหมาะสม วันนี้มีศัพท์สองคำมาแนะนำกับนะครับ คือ Economy of Scale กับ Return to Scale ว่านักลงทุนอย่างแรก ควรรู้ไปเพื่ออะไร มันมีผลอะไรกับหุ้นของเราบ้าง เริ่มต้นกันที่ Economy of Scale Economy of Scale แปลตรงตัว คือ การประหยัดของขนาด ถ้าพูดง่ายๆ คือ การลดต้นทุนต่อหน่วยให้ลดลง โดยการขยายกำลังการผลิตให้มากขึ้น ถึงตอนนี้หลายๆคนอาจจะลงสงสัยว่า ทำไมผลิตเพิ่ม แล้วต้นทุนถึงต่ำลง เราต้องมองไปที่ค่าใช้จ่ายในการผลิต มันจะส่วนที่เป็นที่คงที่ กับแปรผ้น โดย มาถึงตรงนี้หลายคนอาจะงงนะครับ เดี๋ยวผมยกตัวอย่างให้ง่ายๆ เช่น โรงงานชาเขียว มีเครื่องจักรผลิตชาเขียว 2 เครื่อง ถ้าผลิต ชั่วโมงละ 100 ขวด ต้นทุน 2,000 บาท ทุนขวดละ 20 บาท ถ้าเราผลิดเพิ่มหละเป็น 200 ขวดหละ ทุนลดลงไปเหลือ 10 บาท (ยังไม่รวมค่าวัตถุดิบเข้ามานะครับ) จากตัวอย่างนี้ จะเห็นแล้วค่าใช้จ่ายในส่วนของเครื่องจักรที่เป็น Fix Cost ทำไมต้นทุนที่ได้ถึงถูกลงครับ ถึงตรงนี้แล้ว ผมว่าหลายคนคงคิดว่ามันน่าจะดีนะ ถ้าเราทำให้ทุนมันลดได้ แต่ทำอย่างไร จากตัวอย่างที่ยกไป โรงงานอาจจะซื้อเครื่องจักรเพิ่ม (ถ้าในตลาดหุ้น อาจจะเป็นการขายหุ้นเพิ่มทุน เพื่อเอาเงินเหล่าเม่าไไปหาเรื่องจักรเพิ่ม) หรือปรับ Flow การทำงานแทน จากตอนกลางวันเป็นตอนกลางคืน เพราะ อากาศเย็นกว่าทำให้ไม่ต้องพักเครื่องบ่อยๆ หรือ จัดลำดับการผลิดของแต่ละหน่วยย่อยๆ เมื่อเห็นว่า Economy of Scale มีจุดเด่นอย่างนี้ แล้ว มันจะมีจุดตาย หรือไม่ ? มี ครับ เพราะ…

[PowerShell] Create Winform by PowerShell

หลังจากที่ได้ลองเล่น Powershell มาสักพักแล้ว ผมมี idea ขึ้นมา เนื่องจาก Workshop ที่แล้ว ผมได้ทำบน Console ซึ่งอาจจะไม่สะดวกมากนั้น คราวนี้ผมลองสร้างเป็น Winform เล็กๆขึ้นมาแทนครับ(จริงๆ กะลองกับ C# ก่อน แต่มาเจอการใช้ประยุกต์ใช้งานแบบนี้ เลยลองมาเล่นก่อน 555) มาถึงตรงนี้หลายๆคนอาจะมีคำถาม ผมเลยทำ Q/A สรุปได้เลยครับ Q: Power Shell มีความสามารถในการสร้าง Winform ด้วยเหรอ ?A: มีครับ เนื่องจากตัว PowerShell เองมีพื้นฐานมาจาก .Net Framework ทำให้สามารถเรียกใช้ library ของ Winform ได้ครับ Q: ต้องสร้าง Power Shell จาก Command ตรงๆเลย หรือ ไม่มี Tools ลากวางแบบ Visual Studio ?A: มีครับ โดย Tools ชื่อ Power Shell Studio มีทั้ง Version Community(ฟรี) และ License(เสียตังค์) แต่ในบทความนี้ผมของ Hard Code นะครับ อิอิ ใน Winform ที่ผมเขียนขึ้น จะมี Control ที่จำเป็นต่างๆ ในการรับค่า Parameter ต่างๆ ได้แก่ Textbox กับ MaskTextBox และการแสดงผลนั้น ผมใช้ตัว DataGridView ครับ โดยหน้าตาของโปรแกรมที่ได้มีลักษณะ ดังนี้ หลังจากเห็น Output แล้ว เรามาลองดู Code ที่ละส่วนกัน โดยผมแยกเป็นส่วนของ UI กับ…

[PowerShell] Getting File by File Version

powershell

จากบทความที่แล้ว ที่ได้เกริ่นสาเหตุของปัญหาไปแล้ว ว่ามี Program หลากหลายเวอร์ชั่นมากในการทดสอบ วันนี้ผมเลยได้ลองเขียน Code ในการหาไฟล์ .exe, ocx, dll ในโพลเดอร์ที่เก็บ Program ทั้งหมด ตาม Version ของลูกค้า และ ชื่อไฟล์ที่ต้องการทดสอบครับ โดย Code คร่าวออกมาเป็นประมาณนี้ครับ ผลลัพธ์ที่ได้ (ขอปิดชื่อไฟล์นิดนึง งานบริษัทและ)และสุดท้าย คือ แก้พวกค่า Path หรือเงื่อนไขต่างๆ ให้รับข้อมูลจากผู้ใช้เองเลย จะได้ไม่ต้องมาแก้ Code บ่อยๆครับ ดังนี้ ต่อไปจะเป็นการลองใช้ Code ชุดนี้ ไปประยุกต์กับ C# ทำ Application เล็กๆกันครับ

[PowerShell] เริ่มต้นจัดการปัญหาด้วย PowerShell

powershell

ไม่ได้เขียน Blog ซะนานเลย ช่วงนี้งานที่ทำงานเยอะขึ้น และขึ้นโปรเจคใหม่ด้วย ตอนนี้เข้าเรื่องดีกว่า เมื่อมี Program ก็ต้องมี Bug หรือ Defect เป็นของคู่กัน การตรวจสอบเคสที่มาจากลูกค้า เพื่อหา Bug หรือ Defect  และปัญหาที่พบว่า Program มี Version ที่หลากหลายมาก ทำให้การหาไฟล์ Program นั้นลำบากมาก แต่เมื่อมีปัญหา ย่อมมีโอกาสตามมา โดยผมลองใช้ Power Shell ในการแก้ปัญหาคร่าวๆ ลองที่ละ Step และท้ายที่สุด คือ การนำไปใช้ร่วมกับ C# เพือให้ง่ายกับการใช้งานครับ มาถึงตอนนี้หลายคนอาจจะสงสัยว่าทำไมต้อง Power Shell แล้ว ไอ้เจ้า Power Shell มัน คือ อะไร Power Shell คือ ชุดคำสั่งแบบ command line shell และ task-based scripting technology เพื่อใช้ช่วยในการจัดการกับระบบ (มองว่าเป็น dos-commandline เวอร์ชั้น Upgrade) เหมือนกับทางค่าย Open Source อย่าง Unix Shell หรือ Linux Shell อย่าง bash เป็นต้น โดยถึงแม้ว่าหน้าที่เหมือนกัน แต่การทำงานในส่วนลึกนั้นแตกต่างกันมาก โดยผมขอสรุปแยกไว้ ดังนี้ Unix Shell หรือ Linux Shell เป็นการทำงานผ่าน Raw Text Power Shell หรือ Windows Power เป็นการทำงานแบบ Object-based approach โดยมีพื้นฐานการทำงานมาจาก .Net Framework…