วันพุธที่ 7 กันยายน พ.ศ. 2554

การเชื่อมต่อฐานข้อมูลโดยใช้ ADO Data control

ADO Data Control
ADO Data Control เป็นตัว Control ที่ได้รับการออกแบบให้สนับสนุนเทคโนโลยี ADO ซึ่งเป็นเทคโนโลยีใหม่ใน Visual Basic 6
การรวมกับข้อมูล
เทคโนโลยีการรวมข้อมูล หมายถึง เมื่อมีการวางตัว control ลงบนฟอร์มแล้ว และรวมตัว control บางส่วนหรือทั้งหมดเข้ากับตัว control อีกตัว เช่น data control ซึ่งจะทำหน้าที่เชื่อมต่อกับฐานข้อมูล data control ให้ผู้ใช้สามารถเลื่อนไปยังเรคคอร์ดต่างๆ ในฐานข้อมูล เมื่อมีการเรคคอร์ดใหม่ ค่าของฟิลด์จะปรากฏ ตัว bound control เมื่อมีการปรับค่าในตัว control การเปลี่ยนค่าจะส่งไปที่ฐานข้อมูล
การรวมข้อมูลของ ADO เป็นการปฏิวัติ เทคโนโลยีการแสดงข้อมูลจากฐานข้อมูล ประการแรก ผู้ใช้อาจจะไม่ได้ทำงานกับฐานข้อมูลตลอดเวลา ซึ่งใน Visual Basic 6 ไม่ได้กล่าวถึงตัว bound control และ data control แต่กล่าวถึง data consumer ที่ผูกติดกับแหล่งข้อมูล ประการต่อการ Visual Basic มี data consumer หลายประเภท เช่น ตัว intrinsic control หรือตัว control ภายนอก, class, COM, component, ตัว control แบบ Homemade ActiveX (หรือ User control), หรือ Data Report designer และมีแหล่งข้อมูลหลายประเภทที่มีสามารถเลือกได้ เช่น ตัว control แบบ ADO Data, class, COM component, User control หรือ Data Environment designer
การเลือกแหล่งข้อมูลและ consumer จะทำให้แบบแผนการรวมข้อมูลมีความยืนหยุ่นในโปรแกรมประยุกต์ที่ดีกว่า data control แบบดั้งเดิม เมื่อมีการใช้การรวมข้อมูลของ ADO ซึ่งไม่ได้เป็นการเชื่อมแบบสถาปัตยกรรม 2-tier เนื่องจากการประยุกต์ไม่ได้รวมโดยตรงกับฟิลด์ในฐานข้อมูล แต่สามารถใช้ตัวกลาง COM component เพื่อที่จะใช้เครื่องมือสำหรับการออกแบบตามสถาปัตยกรรม 3-tier ที่การประมวลผลสามารถทำได้ที่เครื่องลูกข่าย เครื่องแม่ข่ายหรือเครื่องอื่นได้
กลไกการรวม
ADO Data control สามารถรวมตัว control ที่ต่างกัน และนำไปประยุกต์กับ date source หรือ consumer อื่นเนื่องจาก ADO Data control ไม่ได้เป็นตัว intrinsic control ดังนั้นการนำมาใช้ต้องเพิ่มตัว control เข้ามาด้วยวิธีการดังนี้
1. ที่เมนู Project เลือก Components (Project -> Components) หรือคลิกเมาส์ปุ่มขวาบน Tool Box แล้วเลือก Components จากเมนู popup
2. เมื่อไดอะล๊อกบ๊อกซ์ Components ปรากฏขึ้นให้เลื่อนรายการไปที่ Microsoft ADO data control 6.0 (OLE DB) ให้คลิกที่ check box ด้านหน้า แล้วคลิกปุ่ม OK
3. ADO data control จะได้รับการแทรกที่ Tool Box โดยมีชื่อย่อ Adodc
การเพิ่ม Adodc (ADO data control) บนฟอร์ม
1. สร้าง Project ใหม่ และให้ตั้งชื่อว่า Project เป็น DataFmt.vbp และสร้างฟอร์มใหม่
2. คลิกที่ Tool ของ Adodc บน Toolbox แล้ววางลงบนฟอร์ม ตามปกติควรอยู่ด้านล่างของฟอร์ม แล้วกำหนดคุณสมบัติ Align เป็น 2-vbAlignButton เพื่อทำให้สามารถปรับขนาดตามฟอร์มได้
3. สร้าง Connection
4. ที่เมนู View เลือก Property Pages (View -> Property Pages) หรือคลิกเมาส์ปุ่มขวาแล้วเลือก Property Pages
5. บนไดอะล๊อกบ๊อกซ์ของ Property Pages ที่แท็บ General ให้กำหนดติดต่อกับแหล่งข้อมูลได้ 3 แบบ คือ ไฟล์ Data Link, ODBC Data Source Name (DSN), และ Connection String ในตัวอย่างเลือกใช้ Connection String
ให้คลิกที่ปุ่มตัวเลือกของ Connection String เมื่อช่องข้อความด้านล่าง Connection String เปลี่ยนสีขาวให้คลิกปุ่ม Build ด้านหลัง
6. เมื่อปรากฏไดอะล๊อกบ๊อกซ์ของ Data Link Properties ที่หน้าของแท็บ Provider ให้เลือก Microsoft Jet 3.5.1 OLE DB Provider แล้วคลิกปุ่ม Next
7. ที่แท็บ Connection ให้คลิกที่ปุ่มด้านหลังช่องข้อความของ Select or Enter Database Name จะปรากฏ Window ของ Select Access Database ให้เลือกฐานข้อมูล (ตามตัวอย่างเลือกจาก C:\Program Files\Microsoft Visual Studio\VB98\NWind.mdb) คลิกปุ่ม Open ชื่อของฐานข้อมูลและพาร์ทจะปรากฏในช่องข้อความหมายเลข 1 ของแท็บ Connection หรือพิมพ์พาร์ทและชื่อฐานข้อมูลลงในช่องข้อความเอง
ในช่องข้อความ User Name ใช้สำหรับกำหนดชื่อผู้ใช้ที่สามารถเข้าถึงฐานข้อมูลได้ ในที่นี้กำหนดเป็น Admin หมายถึงผู้ใช้ที่สามารถเข้าถึงทุกส่วนของฐานข้อมูลได้ ส่วนช่อง Password สำหรับการกำหนดรหัสผ่านเข้าฐานข้อมูล
คลิกปุ่ม Test Connection เมื่อทดสอบการติดต่อระหว่าง ADO data control กับฐานข้อมูลที่เลือกถ้าสามารถติดต่อกันได้ จะปรากฏข้อความ "Test Connection Succeeded" ให้คลิกปุ่ม OK
8. ที่ Data Link Properties ให้คลิกปุ่ม OK เพื่อไปยัง Property Page จะปรากฏพารามิเตอร์ของการติดต่อระหว่าง ADO data control กับฐานข้อมูลในช่อง Connection String
9. คลิกที่แท็บ Record source บน Property Page ให้เลือก 2-adCmdTable ในช่อง Command Type เพื่อการติดต่อกับ table จากนั้นช่อง Table or Stored Procedure Name จะเปลี่ยนเป็นสีขาวและมีรายชื่อ table ให้เลือก table ชื่อ Orders
10. คลิกปุ่ม OK
11. วาด text Box , label อย่างละ 4 ตัว และ option button 2 ตัวแต่สร้างเป็น control array โดยอาจจะใช้การสร้างตัวหนึ่งบนฟอร์ม แล้วใช้กับการคัดลอกและวาง ซึ่งจะมีไดอะล๊อกบ๊อกซ์ให้ยืนยันการสร้างชื่อเดียวกัน แต่จะมีการกำหนดคุณสมบัติ Index ตามลำดับให้แล้วกำหนดคุณสมบัติ ดังนี้
อ๊อบเจค
ตัว Control หรือ อ๊อบเจค
คุณสมบัติ
การตั้งค่า
ฟอร์ม
Form1
Name
Data Format
text box
Text1
Name
txtOrderID
Text2
Name
txtOrderDate
Text3
Name
txtShippeddate
Text4
Name
txtFreight
option button
Option1
Name
optCurrency
ส่วน Label ให้กำหนดคุณสมบัติ caption ตามตำแหน่งที่วางหน้า text box
12. ที่ txtOrderDate ไปที่ตารางคุณสมบัติ ให้กำหนดคุณสมบัติ DataSource เป็น adodc1 และคุณสมบัติ DataField เป็น OrderDate โดยเลือกจากรายการในเมนู drop-down กำหนดคุณสมบัติ DataFormat โดยการที่ปุ่ม build เพื่อเปิด Property pages แล้วเลือกรูปแบบที่เหมาะสมกับประเภทข้อมูล สำหรับ OrderDate เลือกประเภทรูปแบบเป็น Date และกำหนดรูปแบบเป็น d mmmm yyyy
จากนั้น กำหนดค่าคุณสมบัติกับ Text box อื่นๆ ตามค่าคุณสมบัติในตาราง และเลือกคุณสมบัติ DataFormat ที่เหมาะสมของประเภทข้อมูล
ตัว Control
คุณสมบัติ
การตั้งค่า
txtOrderID
DataSource
adodc1
DataField
OrderID
txtOrderDate
DataSource
adodc1
DataField
OrderDate
txtShippeddate
DataSource
adodc1
DataField
Shippeddate
txtFreight
DataSource
adodc1
DataField
Freight
เนื่องจากมีการใช้อ๊อบเจค StdDataFormat ดังนั้น ต้องเพิ่มการอ้างอิง โดยไปที่ Project Reference แล้วเลือก Microsoft Data Format Object Library จากไดอะล๊อกบ๊อกซ์ References
การตั้งค่าคุณสมบัติให้ Text box ที่เป็นการรวมข้อมูล คือ คุณสมบัติ DataSource ของทุกตัว control ให้ตั้งค่าเป็น Adodc1 (หรือตามชื่อที่ตั้งขึ้น) และคุณสมบัติ DataField ให้เลือกฟิลด์ของ table หรือคิวรี่ ซึ่งได้จากการกำหนด RecordSource ของ ADO data control การตั้งค่าให้เลือกจากรายการด้วยการคลิกที่ปุ่มลูกศรแล้วเลือกค่าที่ต้องการ
ADO Data Control
ภายในตัว ADO Data control ประกอบด้วยคุณสมบัติของ ADOConnection และอ๊อบเจค Recordset สามารถแสดงรายการคุณสมบัติที่สำคัญในการทำงาน
คุณสมบัติ
การประยุกต์
ADOConnection
ConnectionString
เก็บสารสนเทศในการติดต่อกับแหล่งข้อมูล
User และ Password
ตั้งข้อมูลสำหรับการ login
ConnectionTimeout
ตั้งค่าการหมดเวลาในการเปิด connection
Mode
หาการปฏิบัติที่ยอมให้ในการติดต่อกับแหล่งข้อมูล
อ๊อบเจค Recordset
RecordSource
ส่งออกเรคคอร์ดจาก table, stored procedure หรือคำสั่ง SQL
CommandType
ประเภทของคิวรี่ที่เก็บในคุณสมบัติ RecordSource
CommandTimeout
การสิ้นสุดเวลาเป็นวินาทีในการประมวลผลคำสั่ง
CursorLocation
ระบุตำแหน่งของ cursor ควรอยู่ที่ลูกข่ายหรือแม่ข่าย
CursorType
ประเภทของ cursor เป็นจำนวนของเรคคอร์ดที่อ่านจากฐานข้อมูลในแต่ละทรานแซคชัน
LockType
มีผลกับการปรับปรุงข้อมูลในฐานข้อมูล
ในขณะเรียกใช้ ADO Data Control จะเกิดได้หลายคุณสมบัติ ทำให้สนับสนุนการเพิ่มเมธอดในการทำงาน เช่น เมธอด Add New และ Delete อาจจะใช้ปุ่มคำสั่งและ event คลิกในการทำงาน
1. สร้าง Project ใหม่ และสร้างฟอร์มใหม่
2. คลิกที่ Tool ของ Adodc บน Toolbox แล้ววางลงบนฟอร์ม ตามปกติควรอยู่ด้านล่างของฟอร์ม แล้วกำหนดคุณสมบัติ Align เป็น 2-vbAlignButton เพื่อทำให้สามารถปรับขนาดตามฟอร์มได้
3. วาด 3 Text box 4 Command button และ 5 Label ลงบนฟอร์ม
อ๊อบเจค
ตัว Control หรือ อ๊อบเจค
คุณสมบัติ
การตั้งค่า
ฟอร์ม
Form1
Name
frmAdoData
text box
Text1
Name
txtTitle
MultiLine
True
Text2
Name
txtYear
Text3
Name
txtISBN
Command button
Command1
Name
cmdAdd
Command2
Name
cmdDelete
Command3
Name
cmdUpdate
Command4
Name
cmdCancel
ส่วน Label ให้กำหนดคุณสมบัติ Caption ตามตำแหน่งที่วางหน้า text box
4. ตั้งค่าการเชื่อมต่อตามขั้นตอนที่ 3 ถึง 10 ของ Project "DataFmt.vbp" โดยตั้งค่าคุณสมบัติ
คุณสมบัติ ConnectionString ด้วย Microsoft Jet 3.5.1 OLEDB provider (ในแท็บ Provider) และชี้ไปที่ฐานข้อมูล Biblio.mdb ใน "C:\Program Files\Microsoft Visual Studio\Vb98" หรือตามตำแหน่งที่เก็บฐานข้อมูล (ในแท็บ Connection)
คุณสมบัติ RecordSource ให้ชี้ไปที่ table ชื่อ Titles (ในแท็บ Record Source)
เมธอดที่นำมาใช้ในการทำงานกับเรคคอร์ด ใน Project นี้ คือ
- เมธอด AddNew สำหรับการเพิ่มเรคคอร์ดใหม่ มีไวยากรณ์ดังนี้
recordset.AddNew
Private Sub cmdAdd_Click()
Adodc1.Recordset.AddNew
End Sub
- เมธอด Delete สำหรับการลบเรคคอร์ด มีไวยากรณ์ดังนี้
recordset.Delete
Private Sub cmdDelete_Click()
Adodc1.Recordset.Delete
End Sub
- เมธอด Update สำหรับการบันทึกการเปลี่ยนแปลงค่าของเรคคอร์ด มีไวยากรณ์ดังนี้
recordset.Update
Private Sub cmdUpdate_Click()
Adodc1.Recordset.Update
End Sub
- เมธอด Cancel สำหรับการลบเรคคอร์ด มีไวยากรณ์ดังนี้
recordset.Cancel
Private Sub cmdCancel_Click()
Adodc1.Recordset.Cancel
End Sub
อ๊อบเจค Recordset มีชุดของคุณสมบัติและเมธอดที่สามารถใช้ได้จาก ADO Data control เช่น การเรียงหรือการกรอง ในการติดต่ออ๊อบเจค ADO Data control ไม่สามารถรองรับติดต่อโดยตรง แต่ใช้ความสามารถของคุณสมบัติ ActiveConnection ของอ๊อบเจค Recordset ได้
Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
Persist Security Info=False;Data Source=" & _
"C:\Program Files\Microsoft Visual Studio\Vb98\Nwind.mdb"
Adodc1.Refresh
' เริ่มต้น transaction
Adodc1.Recordset.ActiveConnection.BeginTrans
Adodc1.RecordSource = "SELECT * FROM Customers"
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Not DataChanged Then
' no record was changed, do nothing
ElseIf MsgBox("ยืนยันการเปลี่ยนแปลงข้อมูล?", vbYesNo + vbExclamation) = vbYes Then
Adodc1.Recordset.ActiveConnection.CommitTrans
Else
Adodc1.Recordset.ActiveConnection.RollbackTrans
Adodc1.Refresh
End If
End Sub
ADO Data control ใช้ event ของอ๊อบเจค Recordset ในการทำงานตัวอย่าง เช่น MoveComplete, WillChangeRecord และ Error โดย MoveComplete เกิดเมื่อเรคคอร์ดใหม่ เปลี่ยนมาเป็นเรคคอร์ดปัจจุบัน
Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.error, _
adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
ShowEvent txtEvents, "MoveComplete", "adReason", GetReason(adReason), _
"pError", GetError(pError), "adStatus", GetStatus(adStatus)
End Sub
WillChangeRecord เกิดทันทีก่อนที่ ADO data control เขียนข้อมูลลงในฐานข้อมูล
Private Sub rs_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, _
adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
ShowEvent txtEvents, "WillChangeRecord", "adReason", GetReason(adReason), _
quot;cRecords", cRecords, "adStatus", GetStatus(adStatus)
End Sub
Error เป็น event ไม่ได้ inherited จากอ๊อบเจค Recordset โดย Error เกิดขึ้นเมื่อไม่มีคำสั่งของ Visual Basic ทำงาน


วันเสาร์ที่ 3 กันยายน พ.ศ. 2554

การเชื่อมต่อฐานข้อมูล Visual Basic 6.0


การเข้าถึงฐานข้อมูล




 


การพัฒนาโปรแกรมประยุกต์ Visual Basic ส่วนใหญ่นำมาใช้กับฐานข้อมูล และการประยุกต์แบบ client / server ซึ่ง Visual Basic เป็นเครื่องมือที่อำนวยความสะดวกให้กับผู้พัฒนาโปรแกรมการเข้าถึงข้อมูล

ความสามารถใหม่ที่สัมพันธ์กับฐานข้อมูลของ Visual Basic มีพื้นฐานจาก ActiveX Data Object (ADO) ซึ่งเป็นเทคโนโลยีที่ให้ผู้ใช้เข้าถึงฐานข้อมูลหรือแหล่งข้อมูล เมื่อมีการใช้ OLE DB provider ติดต่อกับแหล่งข้อมูล

Visual Basic 6 มีวิธีการติดต่อกับฐานข้อมูลได้หลายวิธี

ODBC


ODBC ย่อมาจาก Open Data Connectivity และตั้งค่าการทำงานให้ผู้ใช้ติดต่อกับฐานข้อมูลทั้งภายในพื้นที่และระยะไกล Microsoft เสนอเทคโนโลยีที่เป็นวิธีการเข้าถึงฐานข้อมูลหลายประเภท เช่น dBase, Microsoft FoxPro, Microsoft Access, Microsoft SOL Server, Oracle รวมไฟล์ text แบบ comma-delimited ด้วยการใช้ API ร่วมกัน ส่วนที่โปรแกรมประยุกต์ทำงานกับ DLL เรียกว่า ODBC driver manager ซึ่งจะส่งคำสั่งไปที่ไดร์ฟเวอร์ ODBC ในการระบุฐานข้อมูลที่ผู้ใช้ต้องการ

สิ่งท้าทายของ ODBC เป็นการให้ติดต่อร่วมกับฐานข้อมูลประเภทต่างๆ ในทางทฤษฎี ผู้เขียนโปรแกรมประยุกต์สามารถเตรียมใช้ ODBC ติดต่อกับฐานข้อมูล Access และเปลี่ยนขนาดไปที่ฐานข้อมูล SOL Server โดยการเปลี่ยนไดร์ฟเวอร์ back-end ของ ODBC และมีคำสั่งไม่มาก การทำสิ่งเหล่านี้ได้เนื่องจากคำสั่งที่ส่งไปยังฐานข้อมูล คือ คำสั่งมาตรฐาน SQL ภาษา SOL (Structure Query Language) เป็นภาษาโปรแกรมที่ใช้กับฐานข้อมูล ในการปฏิบัติเลเยอร์ ODBC สามารถแปลงคำสั่ง SQL ให้เป็นภาษาเฉพาะของฐานข้อมูล ผู้เขียนโปรแกรม ODBC มักจะข้าม engine การแปลของ ODBC และส่งคำสั่งโดยตรงกับฐานข้อมูล

ODBC มีประสิทธิภาพเมื่อเปรียบเทียบกับเทคนิคการเข้าถึงข้อมูล ความได้เปรียบของ ODBC คือสนับสนุน API ทั้งประเภท 16 บิต และ 32 บิต ใน ODBC เวอร์ชัน 3 เพิ่มเทคนิคการบู๊ตให้ดีขึ้น เช่น การติดต่อแบบ pool ทำให้โปรแกรมประยุกต์ตอบสนองได้ดีขึ้น Microsoft Transaction Server ใช้การติดต่อแบบ pool เพื่อความเร็วในการเปิดการติดต่อโดย component ของ ActiveX ที่ทำงานอยู่ภายใต้ ODBC

การใช้ ODBC ไม่ใช่เรื่องง่ายโดยเฉพาะอย่างยิ่งสำหรับผู้พัฒนาโปรแกรมด้วย Visual Basic กลุ่มของฟังก์ชัน API มีความซับซ้อนและถ้ามีความผิดพลาดเกิดขึ้นอาจจะให้โปรแกรมประยุกต์เสียหาย ด้วยเหตุนี้ผู้พัฒนาโปรแกรม Visual Basic น้อยมากที่จะเขียนคำสั่งเรียกฟังก์ชัน ODBC โดยตรง เทคนิคการแก้ไขข้อมูลอื่น ๆ ส่วนใหญ่ให้ Visual Basic ใช้ไดร์ฟเวอร์ ODBC ในฐานะเลเยอร์กลาง ในบางครั้งอาจใช้เทคนิคอื่น ๆ กับการเรียก API โดยตรง แต่ไม่สามารถใช้วิธีการนี้กับ ADO ได้ถึงแม้ว่าภายใน ADO จะใช้ไดร์ฟเวอร์ ODBC

แนวคิดพื้นฐานของเทคโนโลยี เช่น เมื่อมีการทำงานกับ ADO มีความเกี่ยวข้องกับ Data Source Name (DSN) โดย DSN เป็นกลุ่มของค่าที่โปรแกรมประยุกต์ในการติดต่อกับฐานข้อมูล โดยทั่วไปจะรวมถึงชื่อไดร์ฟเวอร์ของ ODBC ที่ต้องการใช้ ชื่อของไดร์ฟเวอร์เป็น host ของแม่ข่ายฐานข้อมูล (การทำงาน กับ Client-Server engine เช่น SQL Server หรือ Oracle), ชื่อพาร์ทของฐานข้อมูลที่เจาะจง, เวลาสิ้นสุดของการติดต่อ, ชื่อของการเรียกเวิร์คสเตชัน หรือโปรแกรมประยุกต์ เป็นต้น

การสร้าง DSN ทำได้หลายวิธี ทั้งภายในและภายนอก Visual Basic ศูนย์กลางของคำสั่ง ODBC อยู่ใน control Panel ของระบบปฏิบัติการ Windows ที่ให้ผู้ใช้ติดต่อสร้าง DSN และคอนฟิก ODBC ซึ่งมี DSN หลายประเภท DSN ของผู้ใช้จะเก็บไว้ใน Registry ของระบบ และสามารถใช้ได้เฉพาะผู้ใช้ปัจจุบันโดยไม่สามารถแบ่งให้ผู้ใดได้ DSN ของระบบเก็บไว้ใน Registry เช่นกัน และสามารถเห็นได้โดยผู้ใช้อื่น ๆ รวมถึงแม่ข่าย Windows NT ไฟล์ DSN เก็บในไฟล์ .dsn และสามารถใช้ร่วมกันโดยผู้ใช้ทั้งหมดไฟล์ DSN สามารถคัดลอกได้ง่าย ทำให้การติดตั้งทำได้สะดวก อีกด้านหนึ่งโปรแกรมประยุกต์ต้องการที่เก็บ DSN ต้องใช้คำสั่งที่ระบุพาร์ทของไฟล์ DSN ที่สมบูรณ์

การทำงานกับ ODBC โดยไม่เกี่ยวข้องกับ DSN ทำได้โดยการให้สารสนเทศที่ต้องการสำหรับการติดต่อ เช่น ไดร์ฟเวอร์, ชื่อฐานข้อมูล และพาร์ทเป็นต้น ให้ถูกต้องในคำสั่ง วิธีนี้เรียกว่า DSN-Less Connections ซึ่งมีประสิทธิภาพเพราะประหยัดของไดร์ฟเวอร์ ODBC ในการเดินทางไปที่ Registry หรือไฟล์ DSN แต่วิธีการนี้ ผู้พัฒนาโปรแกรมต้องทำงานมากขึ้น

แท็บ 3 แท็บแรกของไดอะล๊อกบ๊อกซ์ ODBC ใน control Panel ให้ผู้ใช้สร้าง, ลบ และคอนฟิก DSN ทุกประเภท การสร้าง DSN ต้องเปิด ไดอะล๊อกบ๊อกซ์ ที่เกี่ยวข้องหลายชุด

แท็บ Driver แสดงไดร์ฟเวอร์ ODBC ที่มีการติดตั้งและเปรียบเทียบหมายเลขของเวอร์ชัน Visual Basic 6 มาพร้อมกับไดร์ฟเวอร์ ODBC หลายตัว แต่สามารถซื้อไดร์ฟเวอร์จากผู้ขายรายอื่น

แท็บ Tracing ของ ODBC Data Source Administrator กำหนดพาร์ทของไฟล์ล๊อกในการทำงานของ ODBC ซึ่งการป้องกันไดร์ฟเวอร์ เมื่อมีการหาข้อผิดพลาดโปรแกรมประยุกต์แบบ ODBC

แท็บ Connection Pool ให้ผู้ใช้สามารถใช้หรือยกเลิก Connection Pool สำหรับแต่ละไดร์ฟเวอร์ของ ODBC ตามปกติไม่ค่อยมีการเปลี่ยนแปลงการตั้งค่า และเก็บ About ให้ผู้ใช้ตรวจสอบตำแหน่งและเวอร์ชันของ DLL ของระบบย่อย ODBC

DAO


DAO หรือ Data Access Object เป็นหัวใจของโปรแกรมประยุกต์ Visual Basic 3 ในพัฒนาการประยุกต์กับฐานข้อมูล DAO เป็นการติดต่อแบบ Object-oriented ไปยัง Microsoft Jet ที่เป็น engine ที่มีความสามารถสูง ผู้พัฒนาโปรแกรมสามารถออกแบบฐานข้อมูล MDB ด้วย Access และใช้ DAO จากโปรแกรมประยุกต์ Visual Basic ในการเปิดฐานข้อมูล เพิ่มและลบเรคคอร์ด และจัดการทรานแซคชัน สิ่งที่ดีที่สุดของ DAO คือไม่จำกัดผู้ใช้กับ Jet database เพราะผู้ใช้สามารถเปิดฐานข้อมูลทุกชนิดที่มีไดร์ฟเวอร์ ODBC ได้โดยตรงหรือผู้ใช้สามารถใช้ Jet attached table ซึ่งเป็น table เสมือนที่ปรากฏตามฐานข้อมูล MDB แต่การดึงและเก็บข้อมูลจริงในแหล่งอื่นของ ODBC

ถ้าผู้ใช้สามารถใช้ DAO เข้าถึงแหล่ง non-jet ผู้ใช้สามารถเห็นกลไกของฐานข้อมูล Access เช่น โปรแกรมประยุกต์ไม่ใช่ฐานข้อมูล Access ผู้ใช้ยังคงโหลด DLL ของ Jet engine เข้าสู่หน่วยความจำ DAO ไม่สามารถให้ผู้ใช้ทำงานกับฟังก์ชัน API ของ ODBC โดยตรง เช่น การทำงานแบบผลลัพธ์หลายชุด, การคิวรี่แบบ asynchronous หรือการติดต่อด้วย DAO

Data control เป็นตัว control ที่ให้ผู้ใช้เชื่อมตัว control 1 ตัวหรือมากกว่าบนฟอร์มกับแหล่งข้อมูลและมีปุ่ม navigator สำหรับเลื่อนเรคคอร์ดของ table ที่มีการติดต่อ Data control ดูเหมือนเป็นเครื่องมือที่ดีมาก เพราะทำให้สามารถทำการอินเตอร์เฟซ กับผู้ใช้ได้รวดเร็วแต่พบว่า Data control มีข้อจำกัดอยู่หลายอย่าง เมื่อพิจารณาสมรรถนะ Data control มีข้อเสียเปรียบสำคัญประการหนึ่ง คือ ผูกติดการประยุกต์ด้าน Front-end กับข้อมูลในฐานข้อมูล ถ้ามีการเปลี่ยนไปใช้เข้าถึงฐานข้อมูลอื่น จะต้องมีทบทวนฟอร์ม ทั้งในโปรแกรมประยุกต์ ถ้าต้องการเพิ่ม Validation rule ที่ซับซ้อนไปยังฟิลด์ ในฐานข้อมูล ต้องมีการเพิ่มคำสั่งในโมดูลเดียวของโปรแกรม ทำให้มีผลกับสถาปัตยกรรม 2-tier และไม่สามารถใช้ได้กับสถาปัตยกรรม 3-tier ซึ่งมีเลเยอร์ชั้นกลางระหว่างโปรแกรมประยุกต์ กับฐานข้อมูล ที่ให้บริการ เช่น การตรวจสอบข้อมูล กฎทางธุรกิจ ความสมดุลของภาระงาน และความปลอดภัย

Visual Basic 4 ไปปรับปรุง DAO เวอร์ชัน 3 ซึ่งมีส่วน DLL พิเศษ ที่ให้ผู้พัฒนาโปรแกรมด้วยเทคโนโลยี 32 บิต สามารถเข้าถึงฐานข้อมูล 16 บิต Visual Basic 5 ได้ปรับปรุงเป็น DAO 3.54 และ Visual Basic ได้ปรับปรุงเป็น DAO 3.51 และ DAO เวอร์ชัน 4 ได้ปรับปรุงสำหรับ Microsoft Office 2000

RDO


RDO หรือ Remote Data Objects เป็นความพยายามครั้งแรกของ Microsoft ในการรวมความง่ายของ DAO กับความสามารถระดับสูงของ Direct ODBC API Programming โดย RDO เป็นแบบจำลองอ๊อบเจคที่ไม่ชัดเจน ภายหลัง DAO แต่ใช้การข้าม Jet engine และ DLL ของ DAO และทำงานโดยตรงกับไดร์ฟเวอร์ ODBC โปรแกรมประยุกต์ที่มาจาก RDO โหลดเฉพาะ DLL จำนวนหนึ่งแทนการใช้ทรัพยากรจำนวนมากของ Jet engine โดยสิ่งสำคัญอยู่ที่การออกแบบเฉพาะของ RDO ให้ทำงานกับทรัพยากรของ ODBC ทำให้สามรถทำงานที่ไม่สามารถเข้าถึงได้โดย DAO เทคโนโลยีของ RDO เป็นเทคโนโลยี 32 บิต จึงไม่สามารถใช้ได้จากโปรแกรมประยุกต์ 16 บิต

RDO1 ได้รับการแนะนำใน Visual Basic 4 และ engine มีการปรับปรุงใน Visual Basic เป็น RDO2 เวอร์ชันล่าสุดเป็นผลิตภัณฑ์ที่สมบูรณ์และสนับสนุนแบบจำลองการโปรแกรมใหม่ที่เป็นแบบ event ซึ่งมีประโยชน์กับการทำงานแบบ asynchronous การพัฒนา RDO ดูเหมือนได้หยุดลง เนื่องจาก Visual Basic 6 ยังคงใช้เวอร์ชัน 2 และไม่มีการปรับปรุงเพิ่มเติมจากเวอร์ชันที่มาพร้อมกับ Visual Basic 5

RDO1 และ RDO2 มาพร้อมกับ Remote Data control ซึ่งทำงานเหมือนกับ Data control และให้ผู้ใช้เชื่อมตัว control กับแหล่งข้อมูลระยะไกล จึงทำให้ Remote Data control มีข้อดีและข้อเสียเหมือนกับ Data control รวมถึงปัญหากับสถาปัตยกรรมแบบ n-tier

ODBC Direct


Visual Basic 5 ได้รวมเทคโนโลยีการเข้าถึงข้อมูลอีกแบบ ชื่อ ODBC Direct ซึ่งยินยอมให้ผู้พัฒนาโปรแกรมประยุกต์ RDO ด้วยไวยากรณ์ DAO โดย ODBC Direct ทำหน้าที่ในฐานะเทคนิคการส่งผ่านที่การเขียนโปรแกรม Visual Basic ย้ายการประยุกต์ DAO/Jet ไปยังสถาปัตยกรรม client/server ในทางทฤษฎีเป็นการเปลี่ยนคุณสมบัติเพียงเล็กน้อย ซึ่งโปรแกรม DAO ที่เก็บข้อมูลใน Jet database จะแปลงไปเป็นการประยุกต์แบบ client/server ในการติดต่อแหล่ง ODBC ในขณะที่ ODBC Direct ไม่ได้รับการพิจารณาในฐานะเทคโนโลยี แต่เหมือนเป็นวิธีการที่ทำให้ประหยัดเวลา การแปลงโปรแกรมประยุกต์ส่วนเพิ่มใหม่ของ RDO2 ส่วนใหญ่ เช่น แบบจำลองโปรแกรมแบบ event ไม่สามารถใช้ ODBC Direct เพราะคำสั่งเข้าได้กับ DAO แต่พื้นฐานคล้ายกับ RDO คือ ODBC Direct เป็นการประยุกต์ 32 บิต

OLE DB


OLE DB เป็นเทคโนโลยีการเข้าถึงข้อมูลระดับล่างที่ Microsoft ผู้พัฒนาให้เข้ามาแทนที่ ODBC ในฐานะวิธีการหลักในการติดต่อกับฐานข้อมูล ส่วนของ OLE DB ที่เทียบได้กับไดร์ฟเวอร์ของ ODBC คือ OLE DB provider ซึ่งทำงานเป็นสะพานระหว่างโปรแกรมประยุกต์กับฐานข้อมูล OLE DB เป็นเทคโนโลยีที่ใหม่ แต่ OLE DB provider พบได้ในฐานข้อมูลจำนวนมาก ถึงแม้ว่า ODBC และ OLE DB มีความคล้ายคลึงกัน แต่มีข้อแตกต่างกัน คือ OLE DB มีพื้นฐานจาก COM ซึ่งเป็นสถาปัตยกรรมที่ให้การย้ายปริมาณข้อมูลจำนวนมากผ่านเครือข่าย ประการต่อมา OLE DB ให้ตัวเองทำหน้าที่ในการติดต่อกับแหล่งข้อมูล ไม่เหมือนกับไดร์ฟเวอร์ ODBC ที่เป็นความสัมพันธ์กับฐานข้อมูล หรือ ISAM ( Indexed sequential access mode)

OLE DB เป็นยุทธศาสตร์ Microsoft's Universal Data Access ซึ่งเป็นการให้ผู้ใช้อ่านและประมวลข้อมูลโดยไม่ต้องแปลง และนำเข้ามายังฐานข้อมูลแบบแผน การใช้ OLE DB provider ทำให้ผู้ใช้สามารถประมวลข้อมูลใน e-mail, message, HTML, กระดาษทำการและเอกสารข้อความ และแหล่งข้อมูลภายนอก Visual Basic 6 มี provider ของ Microsoft Jet, SOL Server, FoxPro, ไฟล์ข้อความและฐานข้อมูล Oracle สำหรับ OLE DB provider อื่น ๆ สามารถดาวน์โหลดจากเว็บของ Microsoft

การส่งผ่านระหว่าง ODBC กับ OLE DB เป็นการใช้ OLE DB provider เฉพาะชื่อ MSDASQL ที่รู้จักในชื่อ Kagera ที่ทำหน้าที่เป็นสะพานเชื่อมกับแหล่งต่างๆ ของ ODBC แทนที่การติดต่อโดยตรงกับฐานข้อมูล ผู้ใช้สามารถใช้ provider พิเศษในการติดต่อกับไดร์ฟเวอร์ของ ODBC ซึ่งอ่านและเขียนข้อมูลในฐานข้อมูล การใช้เลเยอร์ส่วนเพิ่มนี้มีผลต่อสมรรถนะแต่น่าจะเป็นปัญหาในระยะสั้น

ADO


ADO หรือ ActiveX Data Object เป็นการติดต่อระดับสูงของ OLE DB มีบทบาทใกล้เคียง RDO ในทำงานกับ API ของ ODBC ในขณะที่ OLE DB คล้ายกับ API ของ ODBC ที่เป็นการติดต่อระดับล่างที่ไม่สามารถเข้าถึงได้ง่ายจากภาษาระดับสูง เช่น Visual Basic เป็นต้น ADO สร้างบน OLE DB เพื่อให้การทำงานที่ไม่ให้ติดต่อโดยตรง ODBC หรือทำให้ผู้ใช้เขียนคำสั่งที่มีความสามารถ ADO สามารถเปรียบเทียบความสามารถกับ ADO คือทั้งคู่สามารถสร้างคิวรี่แบบ asynchronous และการติดต่อ ADO เพิ่มส่วนใหญ่จำนวนมาก เช่น file-based และ stand-alone Recordset, hierarchical Recordset และอื่นๆ

ส่วนสำคัญของ ADO คือส่วนขยาย แทนที่จะซับซ้อนและลำดับชั้นของอ๊อบเจคที่แข็งตัว ซึ่ง DAO และ RDO เป็นอยู่ ADO ประกอบด้วยอ๊อบเจคจำนวนน้อยที่สามารถรวมได้ในหลายวิธีส่วนใหญ่สามารถเพิ่ม ADO ในรูปแบบพิเศษ ของ OLE DB provider เช่น Data Shape provider ซึ่งเสนออ๊อบเจค hierarchical Recordset ไปให้ provider อื่น ๆ Microsoft กำลังสร้างส่วนใหม่ให้ ADO ในรูปแบบพิเศษของไลบรารีแบบแยกที่เชื่อมแบบ dynamic ไปยังแกนไลบรารีรี่ของ ADO เช่น ไลบรารี ADO 2.1 ได้สนับสนุน Data Definition Language และความปลอดภัย (ในการสร้าง table ของฐานข้อมูล, ผู้ใช้ และกลุ่มของผู้ใช้), Jet replica และ Recordset แบบหลายมิติ เพราะตรงข้ามกับ DAO และ RDO ซึ่งจะฝัง DLL ขนาดใหญ่ในทุกส่วน

ส่วนพิเศษของ ADO ที่ผู้ใช้สามารถใช้ภายในเพ็จ HTML ใน browser เช่น Internet explorer หรือด้านแม่ข่ายด้วย Active Server Page บน Internet information Server ระบบย่อยของ ADO ระบบหนึ่งชื่อ Remote Data Service ให้ผู้ใช้ส่งกลุ่มของเรคคอร์ดไปยัง browser ของลูกข่าย หรือ component ของ active COM บนอินเตอร์เน็ต