วิธีการเปิดการเชื่อมต่อ ADO และวัตถุชุดระเบียน

หมายเลขบทความ (Article ID): 168336 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับรุ่น Microsoft Visual Basic .NET ของบทความนี้ ดู310985.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

วัตถุข้อมูล 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วิธีการเติมข้อมูลวัตถุเป็นชุดข้อมูลจากฐานข้อมูล โดยใช้ Visual Basic .NET
สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความด้านล่างนี้ เพื่อดูบทความใน Microsoft Knowledge Base::
188857PRB: ใช้เปิดวิธีการเปลี่ยนแปลง CursorType และ LockType
194979ข้อมูล: ADO Spawns เพิ่มเติมการเชื่อมต่อกับ SQL Server
168335ข้อมูล: วัตถุข้อมูล ActiveX (ADO) โดยใช้ Visual Basic ที่มีการใช้
193332file: 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
Keywords: 
kbhowto kbmt KB168336 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:168336

ให้ข้อเสนอแนะ