เทคนิคการใช้ Unidac ตอน UniconectDialog

สวัสดี เบล เอ้ย ไม่ใช่ละ สวัสดีทุกคน เวลาเขียนโปรแกรมด้วย Delphi ผมมักจะใช้ Unidac ในการเชื่อมต่อฐานข้อมูลเสมอ เนื่องจากมันเชื่อมต่อได้ทุกอย่าง Tool ตัวหนึ่งของเขาลดการเขียนโปรแกรมไปเยอะ คือหน้าที่ใช้ตั้งค่าการเชื่อมต่อนั่นเอง
ขั้นแรกเราคงต้องลาก component ที่ต้องใช้ มาวางใน form

กำหนดค่า Connection Dialog ให้กับ Uniconnection ทั้งสองตัว


คราวนี้เรามาใส่ event ให้กับปุ่มที่ใช้ตั้งค่าฐานข้อมูล โดยกำหนดให้ เรียก UniConnectDialog1 สำหรับเรียกการตั้งค่า ของ SQL Server และ UniConnectDialog2 สำหรับเรียกการตั้งค่า ของ MySQL

เมื่อกด Run แล้วคลิกที่ปุ่ม โปรแกรมจะเรียก Dialog สำหรับตั้งค่าฐานข้อมูลมาให้

เมื่อกด Connect ก็ให้ Uniconnection ใช้ค่าสำรับตั้งค่าฐานข้อมูลตามที่เรากำหนดไว้ได้เลยโดยใช้ Code

procedure TForm3.BtnSQLSrvConnClick(Sender: TObject);
begin
if UniConnectDialog1.Execute then
begin
UniConnection1.Server := UniConnectDialog1.Connection.Server;
UniConnection1.Database := UniConnectDialog1.Connection.Database;
UniConnection1.Username := UniConnectDialog1.Connection.UserName;
UniConnection1.Password := UniConnectDialog1.Connection.Password;
UniConnection1.Port := UniConnectDialog1.Connection.Port;
UniConnection1.Connected;
end;
end;
เท่านี้ก็สามารถ Connection Database ได้แล้ว หลายคนสงสัยว่าแล้วผมจะทำตัวอย่างโดยมี Connection สองตัวไปทำไม ก็นั่นนะสิ ผมทำไปทำไมนะ
อ่อจำได้ละก็เพราะว่า หากเรามี Connection สองตัว เลือก Dialog สองตัว ต่างกันแต่เวลาเรียกใช้มันเอาตัวล่าสุดที่เราตั้งค่า โดยไม่สนว่าค่าเดิมคืออะไรนะซิ
เช่น ถ้าเราเลือก ตัวแรกเป็น SQL Server ตั้งค่าเรียบร้อย ตัวสองเป็น MySQL พอกดตั้งค่ามันจะขึ้น ค่าเดิมที่ตั้งไว้ของ SQL Server และเมื่อตั้งค่า MySQL เสร็จแล้ว ไปกดตั้งค่า SQL Server อีกทีมันจะเด้งเป็นค่าที่เราตั้งไว้กับ MySQL แทน มันช่าง ซับซ้อน…….
หลังจากควานหาคำตอบเพื่อแก้ไขข้อบกพร่องนี้จนเจอผมก็แก้จนใช้ได้และหลงลืมเลือนไปว่าแก้อย่างไร จนกระทั้งผมมาเจอปัญหาเดิมอีกครั้งจึงตั้งใจจะเขียน Blog เฉลยไว้เตือนใจ ซึ่งวิธีง่ายๆ ก็คือ

ตั้งค่าให้ StoreLogInfo เป็น Fale แค่นี้ก็จะจำค่าเดิมได้แล้ว