Visual Class Library(.VCX) มีไว้ทำอะไร?
คุณคงเคยทำการสร้างฟอร์มใน Visual FoxPro มาบ้างแล้ว ถ้าคุณทำการสร้างโดยใช้ base class ล้วนๆ คุณจะพบกับความยุ่งยากในการกำหนด รูปแบบตัวอัษร(font) ที่ใช้ในการแสดงภาษาไทยในคลาสต่างๆ เช่น Textbox,Label,CommandButton เป็นต้น ซึ่งคุณต้องกำหนดทุกๆครั้ง ที่คุณทำการเพิ่มมันเข้ามาในฟอร์มของคุณ หรือในกรณีที่เราสร้างฟอร์มแล้วต้องการให้ฟอร์ของเราขยายใหญ่เต็มจอ มีปุ่มคอนโทรเมนูแทนที่จะเป็นรูปไอคอนสุนักจิ้งจอกเราก็เปลี่ยนเป็นแบบของเราเอง หรือถ้าเราต้องใช้ชุด ของปุ่มคำสั่งรูปแบบใดรูปแบบหนึ่ง แต่เป็นลักษณะคล้ายๆกันในเกือบทุกๆฟอร์มที่ทำการสร้าง หรือ เราต้องการแสดงฟอร์มรูปแบบนี้ในอีกหลายๆครั้งเช่น ฟอร์มการออกรายงานเป็นต้น โดยที่เราไม่อย่างมาสร้างใหม่หรือมากำหนด properties ,event ,method ใหม่ทุกครั้ง หรืออื่นอีกมากมายบรรยายไม่หมด ดังนั้น Visual FoxPro จึงอนุญาตให้เราสามารถสร้าง คลาสขึ้นมาใหม่ได้โดยการใช้คำสั่ง CREATE CLASS เพื่อสนองความต้องการของเราๆทั้งหลาย โดยมีรูปแบบคำสั่งดังนี้
Category: สู่เส้นทางดิจิตอล
อะไรเอ่ยเขียนครั้งเดียวแต่ใช้บ่อย?
ฟังก์ชันคืออะไร? ถ้าถามผม ผมบอกได้เลยว่ามันก็คือคำสั่งประเภทหนึ่งเท่านั้นเอง ใครทราบความหมายยาวๆบอกด้วย รู้แต่ใช้เท่านั้นเองแต่ที่แน่นๆมันทำให้ผู้ใช้ทำงานง่ายขึ้น แต่คนเขียนฟังก์ชันบางทีก็ไม่ง่ายนะครับ
ใน Visual FoxPro มีประเภทของฟังก์ชันอยู่ 2 ชนิดด้วยกัน
1. ฟังก์ชันที่มากับโปรแกรม (Visual FoxPro function)
2. ฟังก์ชันที่ผู้ใช้กำหนดเอง (user-defined function (UDF))
บทที่แล้วคุณได้ทราบวิธีการสร้างฐานข้อมูล และแฟ้มดัชนี ต่างๆแล้ว มาในบทนี้ คุณจะได้เรียนรู้ถึงการใช้งานข้อมูล การกระทำกับข้อมูลว่ามีวิธีการอย่างไรบ้าง
จากตัวอย่าง program4 คุณคงได้เห็นคำสั่งที่เกี่ยวกับการจัดการข้อมูลมาบ้างแล้ว ทีนี้เราจะมาทำความเข้าใจกับคำสั่งต่างๆเหล่านั้นกัน
คำสั่งแรกที่จะทำการพูดถึงก็คือการเปิดแฟ้มข้อมูล (table) ขึ้นมาใช้งาน เราใช้คำสั่ง USE ซึ่งมีรูปแบบดังนี้
คุณคงทราบดีอยู่แล้วว่า Visual FoxPro ถูกสร้างขึ้นมาเพื่อจัดการกับฐานข้อมูล ซึ่งจะมีการเก็บข้อมูลต่างๆแล้วนำมาประมวลผล ในบทนี้เราจะมากล่าวกันเกี่ยวกัวการออกแบบฐานข้อมูล แฟ้มข้อมูล เรคอร์ด ฟิลด์ เพื่อเป็นแนวทางในการออกแบบและสร้างฐานข้อมูลต่อไป ท่านทราบหรือไม่ว่าหน่วยเก็บข้อมูลที่เล็กที่สุดของคอมพิวเตอร์คืออะไร
บิต(Bit) เป็นหน่วยเก็บข้อมูลที่เล็กที่สุดในคอมพิวเตอร์ เมื่อเรานำบิตหลายๆบิตมารวมกับก็จะเป็น ไบต์ (รหัส ASCII 8 บิต เท่ากับ 1 ไบต์) ซึ่งก็คือ 1 ตัวอักษรนั่นเอง แล้วนำตัวอักษรมารวมกันแล้วมีความหมายอย่างใดอย่างหนึ่งเราเรียกเป็นฟิลด์(Field) นำฟิลด์หลายๆฟิลด์มีมีความเกี่วยเนื่องกันมาประกอบกันรวมเป็น เรคคอร์ด(Record) หลายๆเรคคอร์รวมกันเก็บไว้ในแฟ้มข้อมูล(File) แล้วนำแฟ้มข้อมูลหลายๆแฟ้มข้อมูลมาสร้างความสัมพันธ์กันประกอบกันเป็นฐานข้อมูล ถ้าคุณต้องการที่จะสร้างระบบงานขึ้นมาใช้งานสักระบบงานหนึ่งสิ่งที่จำเป็นอย่างยิ่งก็คือ ฐานข้อมูล (Database) แล้วฐานข้อมูลมีประโยชน์อย่างไร?
ใน Visual FoxPro เราถือว่า ฟอร์ม(Forms) , ฟอร์มเซ็ต(Form Set) และคอนโทรล(Control)
ทั้งหมดนี้เป็นวัตถุ(Object) แล้วเราก็นำเอา Object ไปใช้ในโปรแกรมต่างๆที่เราเขียนขึ้นมา
มาถึงตอนนี้เราก็เข้าแก๊บของการเขียนโปรแกรมแบบ OOP อีกแล้วครับท่าน
Object ต่างๆที่เราเขียนขึ้นมานั้นจะประกอบไปด้วย คุณสมบัติ(Properties) , อีเวนต์(Events)
และเมธอต(Methods) เอ้าที่ว่ามามันไม่เห็นจะเกี่ยวกับคลาสตรงไหนเลย เอาละ คลาส กับ Object
มันไม่เกี่ยวกันหรอกเพราะมันไม่มีตะขอเกี่ยว… แต่มันมีความละม้ายใก้ลเคียงกันมากเพราะ
Object มันเกิดมาจากคลาส อ่านมาถึงตรงนี้อย่าเพิ่งงงนะครับ ส่วนผมนะงงไปแล้ว งั้นยกตัวอย่างเลยแล้วกัน
ตัวอย่างก็มีอยู่ว่า ใน Visual FoxPro ได้จัดเตรียม คลาสสำเร็จรูปเตรียมไว้ให้เราซึ่งเรียกว่า เบสคลาส(Base Class)
แล้วเรานำมาเพิ่มคุณสมบัติ ใส่อีเวนต์ เติมเมธอต แล้วเราก็นำมันมาใช้เราเรียกตัวที่นำมาใช้ว่า Object
ถึงตอนนี้เข้าใจบ่ หรือบ่เข้าใจ แต่มีอีกคำหนึ่งอยากจะอะธิบายให้ฟังสักหน่อย คำว่า ซับคาลส(Sub Class)
ลักษณะของ Sub Class ก็เหมือนกับคลาสอีกนั่นแหละแต่ Sub Class จะอยู่ตรงกลางระหว่าง คลาส กับ Object
จุดประสงค์ของ Sub Class ก็มีไวอม…ไม่ใช่ ตัวอย่างเช่นถ้าเราต้องการสร้างฟอร์มแล้วมีปุ่มคำสั่งเราก็นำ เบสคลาส
มาใส่แล้วกำหนด คุณสมบัติ , อีเวนต์ และเมธอต เมื่อเรากำหนดเสร็จก็จะได้เป็น Sub Class แล้วเราก็ทำการเรียก
ใช้งาน เวลาเรนำมาใช้ก็กลายเป็น Object อีกแล้วครับท่าน งงไปก็งงมาอยู่ตรงนี้แหละ
ในการเขียนนิพจน์ขึ้นมาไม่ว่าคุณจะเขียนด้วยโปรแกรมภาษาใดก็ตาม ซึ่งอาจเป็น ภาษา C , BASIC หรือ PASCAL คุณจำเป็นจะต้องเข้าใจและรู้เกี่ยวกับคำสั่งที่ใช้ในการควบคุมการทำงานของโปรแกรม ซึ่งมีอยู่ 2 ชนิด
ได้แก่ นิพจน์คำสั่งที่ใช้ในการทดสอบ , คำสั่งที่ต้องการให้ทำงานซ้ำๆกัน ในความคิดผมนั้นถ้าผู้ที่ต้องการจะเป็น หรือเป็นโปรแกรมเมอร์ไม่ทราบคำสั่งประเภทนี้แล้ว เลิกเป็นโปรแกรมเมอร์แล้วไปขายเต้าฮวยจะดีกว่า
การสร้างระบบงานขึ้นมาสักหนึ่งระบบนั้น จำเป็นอย่างยิ่งที่จะต้องมีการเขียนโปรแกรมมาควบคุมการทำงานของส่วนต่างๆ ให้เป็นไปตามความต้องการของผู้ใช้งาน ในการเขียนโปรแกรมแต่ละภาษาจะมีวิธีการเขียนแตกต่างกันออกไป แต่โดยหลักการแล้วไม่ว่าคุณจะทำการเขียนโปรแกรมด้วยภาษาอะไรก็ตามคำสั่งและฟังก์ชั่นจะไม่เหมือนกันซักทีเดียว แต่หลักและวิธีการเขียนโปรแกรมจะเป็นในแนวทางเดียวกันในยุคปัจจุบันนี้วิธีการเขียนโปรแกรม ได้พัฒนาไปเป็นการเขียน
โปรแกรมเชิงวัตถุ (Object-Oriented Programming OOP) ซึ่งก่อนหน้านี้เราเคยชินกับการเขียนโปรแกรม แบบโครงสร้าง(Structure Programming) จะสังเกตได้ว่าพัฒนาการด้านโปรแกรมได้มีความก้าวหน้าขึ้นเรื่อยๆ ซึ่งจะอำนวยความสะดวกในการเขียนโปรแกรมให้แก่ผู้พัฒนาระบบงานมากยิ่งขึ้นกว่าเมื่อก่อน Visual FoxPro ก็เป็นอีกหนึ่งโปรแกรมที่ได้พัฒนามาจนกระทั่งเป็นโปรแกรมแบบ OOP ซึ่งก่อนจะพัฒนามาเป็น Visual FoxPro นั้นโปรแกรมได้พัฒนาเริ่มต้นมาจาก FoxBase, FoxPro แล้วก็มาถึง Visual FoxPro ที่เรากำลังกล่าวถึงอยู่นี้
อีเวนต์ (Events)
เกริ่นนำ…ในการเขียนโปรแกรมเชิงวัตถุ(Object Oriented Program) สิ่งที่จำเป็นอย่างยิ่งที่จะต้องรู้ก็คือการทำงานของ event ต่างๆที่เกิดขึ้นกับ object นั้นๆ ยิ่งถ้าท่านเคยทำการเขียนโปรแกรมแบบโครงสร้างมาก่อนแล้ว พอมาเจอกับ event งงเป็นไก่ตาแตก บางท่านถึงกับเลิกที่จะเรียนรู้ไปเลย ผมก็เป็นคนหนึ่งในจำนวนนั้นเหมือนกัน แต่ชีวิตนี้ยังมีหวังเลยไปรายการฝันที่เป็นจริง คุณไตรภพให้รถเข็นขายก๋วยเตี๋ยวมาคันหนึ่ง ก็เลยคิดได้ตั้งหน้าตั้งตากลับมาศึกษาใหม่หมด เลยได้สัจจะธรรมของเหตุการณ์(event) ต่างๆใน Visual FoxPro ว่าระหว่างที่เราทำงานกับวัตถุหนึ่งๆมันเกิดเหตุการณ์ขึ้นมากับ วัตถุนั้นหลายอย่างด้วยกัน แต่พอเกิดแล้วเราไม่รู้สึกว่ามันเกิดอะไรขึ้นหรอกเพราะเนื่องจากเรายังไม่ได้ทำการนำมันไปใช้งาน แต่ก่อนที่คุณจะนำมันไปใช้งานนั้นคุณต้องทำความเข้าใจกับลำดับการทำงานของ event ต่างๆกันก่อนว่าไก่กับไข่อะไรเกิดก่อน
1 $ การค้นหานิพจน์อักขระ
2 % ส่งค่าเศษที่ได้จากการหาร
3 & การทำงานแบบแมโคร
4 ABS() ส่งค่าสัมบูรณ์ของตัวเลข
5 ACOPY() การคัดลอกอาร์เรย์
6 ACOS() สั่งค่า arc cosine
7 ADELการลบสมาชิกในอาร์เรย์
8 ADIR() การแสดงข่าวสารของไดเรกทอรีนั้นๆ
9 AELEMENT() การส่งค่าตำแหน่งที่อยู่ในอาร์เรย์
10 AFIELDS() นำข่าวสารของ field มาไว้ในอาร์เรย์
ทดสอบแล้วใช้ได้ แต่ใช้จริงต้องปรับตำแหน่งเรียก mysqldump ที่ต่างกัน
OS : Windows Server
เช่นถ้าใช้ wamp เป็นตัวติดตั้งก็จะอยู่ที่
C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump
ถ้าติดตั้ง MySQL เพียวๆ ก็คงต้องหาตำแหน่งที่ถูกต้องของเซิร์ฟเวอร์แต่ละเวอร์ชั่น
เช่น C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump
การจะกำหนดเวลาแบ็กอัพนั้น Schedule ของ Windows Server ให้เรียกไฟล์ xxxxx.bat เพื่อทำงานตามเวลาที่กำหนด (หากใช้ลีนุกซ์ก็คงจะใช้ cronjob และจะสะดวกกว่าหากจัดการด้วย webmin)