คอมโพเน้นท์ที่ใช้ในการติดต่อกับ Database ผมเลือกใช้ FireDAC แล้วกันครับ ง่ายดี แต่ว่าเจ้า FireDAC นั้นมีมาพร้อมกับ Delphi ตั้งแต่เวอร์ชั่น XE3 เป็นต้นไป ถ้าใครใช้ต่ำกว่านั้น (XE2,XE,2010,2009,2007,2006,2005,7) ต้องใช้ คอมโพเน้นท์ AnyDAC ของบริษัท daSoft แทนครับ หรือไม่ก็ใช้ ADO แทน หรือ UniDac ก็ได้ และอื่นๆอีกมากมายครับ เพราะ Delphi มีบริษัทต่างๆที่เขียนคอมโพเน้นท์ Support กับ Delphi เยอะมาก
เรามาเริ่มกันเลยครับ
1. สร้าง Table ในฐานข้อมูลให้เรียบร้อยก่อน เอาแบบง่ายๆนะครับ ผมจะใช้ Microsoft Access เป็นฐานข้อมูลโดยออกแบบ Table ตามนี้ครับ เก็บข้อมูลลูกค้าครับ
2. ต่อไปในฝั่ง Delphi ก็เริ่มจากสร้างโปรเจคขึ้นมาก่อนครับ จากนั้นไปที่ Tool Palate ค้นหาคำว่า FDConnection , FDPhysMSAccessDriverLink , FDTable ค้นเจอทั้ง 3 ตัวแล้วลากลงมาวางบนฟอร์มทุกตัวครับ
อธิบายนิดนึงครับ
- FDConnection เราใช้เพื่อเป็นตัวติดต่อกับฐานข้อมูล
- และเนื่องจาก FireDAC สามารถติดต่อกับฐานข้อมูลได้หลากหลายตัวด้วยกันเราจึงต้องให้โปรแกรมเรารู้ว่าตอนนี้เราจะเขียนโปรแกรมติดต่อกับฐานข้อมูลอะไร เราจึงต้องมี FDPhysMSAccessDriverLink เพราะเราจะเขียนติดต่อกับ Access ครับ ถ้าเป็นฐานข้อมูลตัวอื่นเช่น MySQL ก็ต้องใช้ FDPhysMySQLDriverLink แทน หรือถ้าเป็น Microsoft SQL Server ก็ต้องใช้ FDPhysMSSQLDriverLink แทนครับ (ย้ำนะครับว่าต้องตัว FDPhyDriverLink เสมอ)
- ส่วน FDGUIxWaitCursor ต้องมีไว้ครับ เพราะเขียนโปรแกรมติดต่อฐานข้อมูล ในการทำงานแต่ละขั้นตอนจะมีการรอคำสั่ง หรือรอข้อมูลการโต้ตอบบางอย่าง ตัวนี้จะมีไว้ เพื่อจัดการเรื่องการ Wait ของเวลา
- ส่วนตัว FDTable เราจะใช้ติดต่อกับตัว Table ครับ ต้องกำหนด Connection ของ FDTable ให้มองไปที่ตัว FDConnection ครับ
3. ต่อไปเรามากำหนด Property ของ Component กันครับ
- เริ่มจาก FDConnection กันก่อนครับ ตั้งค่าจามรูปเลย เสร็จแล้วให้กด OK ครับ
- กลับมาที่หน้าจอหลัก ให้กำหนด Property "Login Promt" เป็น False นะครับ เพราะเวลาเชื่อมต่อมันจะได้ไม่ต้องถาม Username กับ Password ให้รำคาญใจครับ
- จากนั้นมาที่ FDTable ครับ กำหนด Property 3 ตัวครับคือ
- Connection = FDConnection1
- TableName = TBL_CUSTOMER
- Active = True
4. เมื่อทำการติดต่อฐานข้อมูลเสร็จแล้ว และได้ตาราง TBL_CUSTOMER มาเรียบร้อยแล้ว ต่อไปเรามาดึงเอาข้อมูลจากตาราง TBL_CUSTOMER มาแสดงบนโปรแกรมกันครับ
- ไปที่ Tool Palates ค้นหาคอมโพเน้นท์ชื่อว่า DataSource มาวางที่ฟอร์มครับ แล้วกำหนด Property ตามรูปด้านล่างเลย คือ ให้ DataSource1 มองไปหา FDTable1 ครับ
- จากนั้นนำคอมโพเน้นท์ตารางมาวางเพื่อเอาไว้แสดงข้อมูลใน Table ครับ ซึ่งในตัวอย่างนี้ผมใช้เป็น EHLib ครับ ใครสนใจสามารถดาวน์โหลดมาทดลองก่อนได้ครับ ที่ http://www.ehlib.com/en/downloads จากนั้นกำหนด Property ดังนี้ครับ
- ก่อนอื่นให้นำ Panel มาวางบนฟอร์ม แล้ว กำหนด Property "Align" = alBottom ครับ
- จากนั้นไปที่ DBGridEh1 กำหนด DataSource = DataSource1 และ Align = alClient (สั่งให้อยู่เต็มจอตลอด)
ทำตามภาพด้านล่างได้เลยครับ
6. เสร็จแล้วสำหรับการตั้งค่าเบื้องต้นต่างๆ ต่อมาเราลองมา Run โปรแกรมทดสอบดูครับ แต่ก่อน Run เราต้องกำหนด Property Active ของ FDTable1 ให้เป็น True ก่อนครับ ไม่งั้นตอนเปิดโปรแกรมจะไม่สามารถเพิ่มลบแก้ไขโปรแกรมได้ครับ (หรือไม่เราต้องไปเขียนคำสั่งให้ Active เองซึ่งไม่เอาดีกว่าครับ ไหนเราก็จะเขียนโปรแกรมโดยที่ไม่ต้องยุ่งเรื่อง Code อยู่แล้วครับ ^_^) กดปุ่ม F9 ให้โปรแกรม Run ได้เลยครับ
7. ต่อไปเรามาทำให้โปรแกรมเราสามารถค้นหาข้อมูลในตารางกันดีกว่าครับ แล้วให้ข้อมูลในคอลัมน์ "ที่อยู่" แสดงข้อมูลที่อยู่ได้ ให้ปิดโปรแกรมที่กำลังเปิดอยู่ลงไปก่อนแล้ว
กลับมาที่หน้า Design แล้วไปกำหนด Property ของ DBGridEh1 ตามรูปด้านล่างเลยครับ
จากต้นจนจบ สังเกตว่าเรายังไม่ได้เขียน Code อะไรเลย ง่ายใช่มั้ยล่ะครับ นี่คือความสามารถหนึ่ง Delphi ที่ทำให้ผมชอบ จำได้ว่าตอนเรียนที่มหาลัยเคยเขียนพวก .Net , Java ถึงกับอ๊วกแตกกันเลยที่เดียวกว่าจะเชื่อมต่อกว่าจะเขียนคำสั่ง SQL กว่าจะ Config โน่น นี่ นั่น ลำบากทีเดียว พอเขียนเสร็จต้องมาปวดหัวกับการแก้บั๊กอีกต่างหาก Delphi นี้แหละครับที่ช่วยได้ สังเกตว่าเราไม่ได้เขียนคำสั่ง SQL พวก Select * from... หรือ Insert into.... อะไรเลยครับ ง่ายกว่านี้ไม่มีอีกแล้ว
และเช่นเคยครับ ถ้าผมไม่ได้ศึกษาจากสื่อการสอนของบริษัท เดลส์เน็ท เอ็นเทอร์ไพรส์ จำกัด (www.delsnet.com) คงได้เขียนโปรแกรมแบบปวดหัวตามเดิมครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น