วัตถุข้อมูล activex (ADO) มีหลายวิธีเพื่อเปิดวัตถุทั้งการเชื่อมต่อและชุดระเบียน บทความนี้แสดงตัวอย่างรหัสสำหรับเทคนิคการสำหรับแต่ละวัตถุทั่วไป
มีหลายวิธีเพื่อเปิดวัตถุเชื่อมต่อภายใน ADO:
- โดยการตั้งค่าคุณสมบัติ ConnectionString เพื่อเชื่อมต่อที่ถูกต้อง string และจากนั้น เรียกเมธอด Open() สายอักขระการเชื่อมต่อนี้จะขึ้นอยู่กับผู้ให้บริการ
- โดยการส่งผ่านสายอักขระการเชื่อมต่อถูกต้องกับอาร์กิวเมนต์แรกของวิธี Open()
- โดยการส่งผ่านคำสั่งที่ถูกต้องในอาร์กิวเมนต์แรกของวิธีการเปิดชุดระเบียนเป็นวัตถุ
- โดยการส่งผ่านชื่อแหล่งข้อมูล ODBC หรือ id ผู้ใช้ และรหัสผ่านวิธี Open() ของวัตถุการเชื่อมต่อไป
มีสามวิธีในการเปิดวัตถุชุดระเบียนภายใน ADO:
- โดยการเปิดชุดระเบียนปิด Connection.Execute() วิธีการ
- โดยการเปิดชุดระเบียนปิด Command.Execute() วิธีการ
- โดยการเปิดวัตถุชุดระเบียนไม่ มีวัตถุการเชื่อมต่อหรือคำสั่ง และการส่งผ่านเป็นสตริถูกต้องของการเชื่อมต่อกับอาร์กิวเมนต์ที่สองของวิธี Recordset.Open()
รหัสนี้อนุมานว่า มีการติดตั้งกับ Visual Basic Nwind.mdb ไม่ และอยู่ในไดเรกทอรี Files\DevStudio\VB C:\Program:
Option Explicit
Private Sub cmdOpen_Click()
Dim Conn1 As New adodb.Connection
Dim Cmd1 As New adodb.Command
Dim Errs1 As Errors
Dim Rs1 As New adodb.Recordset
Dim i As Integer
Dim AccessConnect As String
' Error Handling Variables
Dim errLoop As Error
Dim strTmp As String
AccessConnect = "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=nwind.mdb;" & _
"DefaultDir=C:\program files\devstudio\vb;" & _
"Uid=Admin;Pwd=;"
'---------------------------
' Connection Object Methods
'---------------------------
On Error GoTo AdoError ' Full Error Handling which traverses
' Connection object
' Connection Open method #1: Open via ConnectionString Property
Conn1.ConnectionString = AccessConnect
Conn1.Open
Conn1.Close
Conn1.ConnectionString = ""
' Connection Open method #2: Open("[ODBC Connect String]","","")
Conn1.Open AccessConnect
Conn1.Close
' Connection Open method #3: Open("DSN","Uid","Pwd")
Conn1.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
"DBQ=nwind.mdb;" & _
"DefaultDir=C:\program files\devstudio\vb;" & _
"Uid=Admin;Pwd=;"
Conn1.Close
'--------------------------
' Recordset Object Methods
'--------------------------
' Don't assume that we have a connection object.
On Error GoTo AdoErrorLite
' Recordset Open Method #1: Open via Connection.Execute(...)
Conn1.Open AccessConnect
Set Rs1 = Conn1.Execute("SELECT * FROM Employees")
Rs1.Close
Conn1.Close
' Recordset Open Method #2: Open via Command.Execute(...)
Conn1.ConnectionString = AccessConnect
Conn1.Open
Cmd1.ActiveConnection = Conn1
Cmd1.CommandText = "SELECT * FROM Employees"
Set Rs1 = Cmd1.Execute
Rs1.Close
Conn1.Close
Conn1.ConnectionString = ""
' Recordset Open Method #3: Open via Command.Execute(...)
Conn1.ConnectionString = AccessConnect
Conn1.Open
Cmd1.ActiveConnection = Conn1
Cmd1.CommandText = "SELECT * FROM Employees"
Rs1.Open Cmd1
Rs1.Close
Conn1.Close
Conn1.ConnectionString = ""
' Recordset Open Method #4: Open w/o Connection & w/Connect String
Rs1.Open "SELECT * FROM Employees", AccessConnect, adOpenForwardOnly
Rs1.Close
Done:
Set Rs1 = Nothing
Set Cmd1 = Nothing
Set Conn1 = Nothing
Exit Sub
AdoError:
i = 1
On Error Resume Next
' Enumerate Errors collection and display properties of
' each Error object (if Errors Collection is filled out)
Set Errs1 = Conn1.Errors
For Each errLoop In Errs1
With errLoop
strTmp = strTmp & vbCrLf & "ADO Error # " & i & ":"
strTmp = strTmp & vbCrLf & " ADO Error # " & .Number
strTmp = strTmp & vbCrLf & " Description " & .Description
strTmp = strTmp & vbCrLf & " Source " & .Source
i = i + 1
End With
Next
AdoErrorLite:
' Get VB Error Object's information
strTmp = strTmp & vbCrLf & "VB Error # " & Str(Err.Number)
strTmp = strTmp & vbCrLf & " Generated by " & Err.Source
strTmp = strTmp & vbCrLf & " Description " & Err.Description
MsgBox strTmp
' Clean up gracefully without risking infinite loop in error handler
On Error GoTo 0
GoTo Done
End Sub
บันทึกข้อผิดพลาด
เฉพาะวัตถุเชื่อมต่อ ADO มีคอลเลกชันมีข้อผิดพลาด เครื่องอ่าน observant จะสังเกตเห็นว่า สามารถมีตัวจัดการข้อผิดพลาด lightweight ผลไม่สำหรับตัวอย่าง RecordSet.Open ในกรณีของข้อผิดพลาดในการเปิดชุดระเบียนเป็นวัตถุ ADO ควรส่งกลับข้อผิดพลาดที่ชัดเจนมากที่สุดจากผู้ให้บริการ OLEDB ข้อผิดพลาดบางอย่างโดยทั่วไปที่พบ ด้วยการ preceding รหัสการติดตาม
ถ้าคุณข้าม (หรือมีข้อผิดพลาดใน) พารามิเตอร์ DefaultDir ในสายอักขระการเชื่อมต่อ คุณอาจได้รับข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาด ado # -2147467259
คำอธิบาย [Microsoft] [โปรแกรม ODBC Microsoft Access 97 ควบคุม] '(รู้จัก)'
ไม่มีเส้นทางที่ถูกต้อง ตรวจสอบให้แน่ใจว่า ชื่อเส้นทาง
สะกดถูกต้องและ ที่คุณเชื่อมต่อกับเซิร์ฟเวอร์
ที่แฟ้มอยู่
แหล่ง Microsoft OLE ผู้ให้บริการของฐานข้อมูลสำหรับ ODBC โปรแกรมควบคุม
ถ้ามีข้อผิดพลาดในพารามิเตอร์ Dbq ในสายอักขระการเชื่อมต่อ คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาด ADO #ไม่การค้นหาคำอธิบาย-2147467259 [Microsoft] [โปรแกรม ODBC Microsoft Access 97 ควบคุม]
แฟ้ม '(ที่ไม่รู้จัก)'
แหล่ง Microsoft OLE ผู้ให้บริการของฐานข้อมูลสำหรับ ODBC โปรแกรมควบคุม
ข้อผิดพลาดก่อนหน้าเติมข้อมูล Connection.Errors ยังคอลเลกชันที่ มีข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาด ado # -2147467259
โปรแกรมอธิบาย [Microsoft] [ตัวจัดการโปรแกรมควบคุม ODBC] ควบคุมของ
SQLSetConnectAttr ล้มเหลว
แหล่ง Microsoft OLE ผู้ให้บริการของฐานข้อมูลสำหรับ ODBC โปรแกรมควบคุม
ข้อผิดพลาด ADO #-2147467259
คำอธิบายการล็อกอินล้มเหลว
แหล่ง Microsoft OLE ผู้ให้บริการของฐานข้อมูลสำหรับโปรแกรมควบคุม ODBC
โปรดสังเกตว่า สำหรับแต่ละข้อผิดพลาด หมายเลขข้อผิดพลาด ADO จะเหมือนกัน ในกรณีนี้ แปล 0x80004005 ซึ่งก็คือข้อความแสดงข้อผิดพลาดที่ E_FAIL ทั่วไป ไม่มีคอมโพเนนต์ที่อยู่ภายใต้หมายเลขข้อผิดพลาดที่ระบุสำหรับเงื่อนไขที่พบ แต่ข้อมูลที่เป็นประโยชน์ถูกไม่เคยในน้อยยก ADO
สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
301216
(http://support.microsoft.com/kb/301216/EN-US/
)
วิธีการเติมข้อมูลวัตถุเป็นชุดข้อมูลจากฐานข้อมูล โดยใช้ Visual Basic .NET
สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความด้านล่างนี้ เพื่อดูบทความใน Microsoft Knowledge Base::
188857
(http://support.microsoft.com/kb/188857/EN-US/
)
PRB: ใช้เปิดวิธีการเปลี่ยนแปลง CursorType และ LockType
194979
(http://support.microsoft.com/kb/194979/EN-US/
)
ข้อมูล: ADO Spawns เพิ่มเติมการเชื่อมต่อกับ SQL Server
168335
(http://support.microsoft.com/kb/168335/EN-US/
)
ข้อมูล: วัตถุข้อมูล ActiveX (ADO) โดยใช้ Visual Basic ที่มีการใช้
193332
(http://support.microsoft.com/kb/193332/EN-US/
)
file: Strings MDACCON.EXE โดยใช้การเชื่อมต่อกับ ODBC/OLEDB/ADO/RDS
หมายเลขบทความ (Article ID): 168336 - รีวิวครั้งสุดท้าย: 7 มกราคม 2554 - Revision: 4.0
ใช้กับ
- Microsoft ActiveX Data Objects 2.7
- Microsoft Visual Basic 5.0 Professional Edition
- Microsoft Visual Basic 6.0 Professional Edition
- Microsoft Visual Basic 5.0 Enterprise Edition
| kbhowto kbmt KB168336 KbMtth |
แปลโดยคอมพิวเตอร์ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:
168336
(http://support.microsoft.com/kb/168336/en-us/
)