ผู้เขียน หัวข้อ: สอบถามเรื่อง ado กับ dao ครับ  (อ่าน 162 ครั้ง)

ออฟไลน์ hot2

  • Newbie
  • *
  • กระทู้: 16
สอบถามเรื่อง ado กับ dao ครับ
« เมื่อ: เมษายน 29, 2016, 11:03:01 pm »
1มันมีความแตกต่างกันอย่างไรบ้างครับ
2ผมใช้ dao อยู่ครับสมควรเปลี่ยนไปเป็น ado มั๊ยครับ
3การเขียนคำสั่งติดต่อฐานข้อมูลแตกต่างกันมากมั้ยครับ

*** เวลาผมเอาโปรเจ็คไปรันบนวินโดว์คนละเวอร์ชั่นจะมีปัญหากับ mscomctl.ocx ครับ เกิดจากอะไรครับแล้วแก้ปัญหายังงัยครับ

ขอบคุณมากครับ

บันทึกการเข้า

ออฟไลน์ ทองก้อน ทับทิมกรอบ

  • Administrator
  • *****
  • กระทู้: 245
  • เพศ: ชาย
  • Webmaster G2GNet
Re: สอบถามเรื่อง ado กับ dao ครับ
« ตอบกลับ #1 เมื่อ: เมษายน 30, 2016, 12:22:30 pm »
ตัวอย่างโค้ดการเชื่อมต่อ DAO (Data Access Object)
Dim MyDB As Database
Dim MyRS As Recordset

Set MyDB = OpenDatabase(App.Path & "\Client.MDB")
SQL = "SELECT * FROM Client ORDER By ClientCode"
Set MyRS = MyDB.OpenRecordset(SQL, dbOpenDynaset)

ตัวอย่างโค้ดการเชื่อมต่อ ADO (ActiveX Data Object)
Dim ConnDB As New ADODB.Connection
Dim RS As New ADODB.Recordset

ConnDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        " Data Source=Client.MDB" & ";" & _
        " Persist Security Info=False"

SQL = "SELECT * FROM Client ORDER By ClientCode"
RS.Open SQL, ConnDB, adOpenKeyset, adLockOptimistic, adCmdText

ขอไม่พูดถึง ODBC (Open DataBase Connectivity) ซึ่งเป็นเทคโนโลยีที่เก่า ช้า ล้าสมัยที่สุดน่ะครับ ... ทั้ง DAO และ ADO ก็คือการเข้าถึงข้อมูลเหมือนกัน โดยทาง Microsoft เป็นผู้ผลิตและได้สร้างไลบรารี่เอาไว้ ตัว ADO ทำงานได้เร็วกว่า DAO และที่สำคัญคือ ADO สามารถติดต่อกับฐานข้อมูลได้หลากหลายค่ายไม่ว่าจะเป็น Access, MSSQL, MySQL หรือ Oracle เป็นต้น

ขอไม่พูดถึง Business Logic หรือระดับชั้น Layer หรือ Class ที่หลายคนมักเอามาอธิบาย DAO กันให้ปวดตับ ... หากอธิบายแบบบ้านๆก็คือ ADO มันจะเป็นตัวกลางไปพูดคุยติดต่อสื่อสารกับตัวฐานข้อมูลใดๆเอง ตามคำสั่งที่เราส่งไป ดังนั้นเมื่อเราเปลี่ยนฐานข้อมูลจึงไม่ต้องเปลี่ยนโค้ดในการ Add/Edit/Delete หรืออื่นๆ แต่เราจะไปเปลี่ยนตรงจุดเดียว คือ Connection String ครับผม

กรณี Component มีปัญหาเช่น Mscomctl.ocx เมื่อรันบน Windows ต่างเวอร์ชั่น ปัญหาน่าจะเกิดที่ Service Pack มากกว่าครับ ปัจจุบันนี้ใช้เวอร์ชั่นล่าสุด(มานาน)คือ SP6 ครับผม

บันทึกการเข้า
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

ออฟไลน์ hot2

  • Newbie
  • *
  • กระทู้: 16
Re: สอบถามเรื่อง ado กับ dao ครับ
« ตอบกลับ #2 เมื่อ: เมษายน 30, 2016, 12:37:13 pm »
ขอบคุณมากครับ

บันทึกการเข้า