หนีไม่พ้น ODBC

ไม่ได้ยุ่งเกี่ยวกับ ODBC มาก็หลายปีแล้ว ล่าสุดจำได้ตั้งแต่ใช้ Delphi ตอนฝึกงาน หลังจากนั้นก็ทำให้ผมพบว่า ไอ้อาชีพโปรแกรมไม่เหมาะกับผมเลยเสียจริงๆ แต่จนแล้วจนรอดก็หนีไม่พ้น ยังไงๆ ก็ต้องเขียน วันนี้กับมาเจออีกครั้งในภาค C Programming ให้ทำงานติดต่อกับฐานข้อมูล MySQL ก็เลยต้องกลับมารื้อฟื้นวิทยายุทธกันนิดหน่อย

เกริ่นที่ปัญหาก่อน ปัญหาคือไอ้โปรเจคฝึกงานผมเนี้ย มันเขียนด้วย C แล้วก็ติดต่อด้วยฐานข้อมูล Btrieve (ตอนนี้ถูก Move ไปเป็น Pervasive PSQL) จุดประสงค์คือ อยากย้ายจาก Btrieve ไปเป็น MySQL ก่อนจะมุทะลุ เดินแบบไร้ทิศทาง..ตั้งหลัก..แล้วมองกลับมาที่ตัวเอง “กูจักพวกมึงมั่งมั๊ยเนี้ย”

[ad#ad-post-1]

ODBC (Open DataBase Connectivity) ก็เป็น API (Application Programming Interface) ที่ช่วยให้คนเขียนโปรแกรมนั้น มีอิสระในการเขียนโปรแกรมด้วยภาษาต่างๆ, บนระบบปฏิบัติการอะไรก็ได้ และที่สุดคัญ ได้ทุกฐานข้อมูล องค์ประกอบที่สำคัญของ ODBC มีอยู่ด้วยกัน 5 ส่วนดังรูป

From : www.mysql.com
  1. Application ก็คือโปรแกรมที่เราเขียน จะด้วยภาษาอะไรก็ช่าง ข้อมูลที่เก็บยังไงไม่สน จะเก็บที่ไหนก็ไม่สนใจ สนใจแค่ว่า DSN (Data Source Name) คืออะไรเป็นพอ หน้าที่หลักๆ ก็คือ
    • เลือกฐานข้อมูล แล้วก็ทำการติดต่อมันซ๋ะ
    • ส่ง SQL Command
    • รับข้อมูล
    • Commit data หรือ บางครั้งจำเป็นต้อง Rollback ข้อมูลผ่าน SQL Command
    • ยกเลิกการติดต่อกับฐานข้อมูล
  2. Driver Manager เขาว่าเป็น library ที่ช่วยในการติดต่อระหว่าง Application กับ Driver มีหน้าทที่หลักๆ ดังนี้
    • แยกแยะข้อมูลที่มีอยู่ใน DSN (คือว่าเราจะต้องเป็นคน Config เองว่า ไอ้ DSN เนี้ยมันมีอะไรบ้าง..แล้วไอ้ Driver manager มันก็เอาไอ้ที่เรากรอกไปทำงานต่อ) คือ Database driver, Database, Database host และ Authentication information (พวก Username/Password)
    • Loading /Un-loading driver เช่นใน MySQL ไอ้เจ้า Driver Manager มันก็จะสั่ง Load Connector/ODBC เพื่อให้ไปสั่งให้ ODBC API นั่นเริ่มทำการติดต่อกับ MySQL Host
  3. Connector/ODBC Driver มันคือ Library (ขอย้ำว่าคือ Library) ที่ Implement function เพื่อให้ ODBC API มาเรียกใช้ พูดง่ายๆ คือ ODBC จะทำงานกับ MySQL ได้ต้องมี Driver ตัวนี้เป็นคนพูดหรือติดต่อให้
  4. DNS Configuration เมื่อเราต้องติดต่อกับฐานข้อมูล เราก็ต้องบอกกับ ODBC ว่าจะใช้ Driver อันไหน, Database อะไร, Username/Password ที่สามารถเข้าใช้งานฐานข้อมูลดังกล่าว
  5. MySQL Server แน่นอนอันนี้ขาดไม่ได้เอาไว้เก็บข้อมูล

โดยไอ้ตัว ODBC Driver Manager นั้นก็ทั้งใน Windows (odbc32.dll), Mac OS x, UNIX (libodbc.so)

[ad#post-image]

ที่มา : www.mysql.com, wikipedia.org