Thông tin: Máy bay phản lực OLE DB nhà cung cấp phiên bản 4.0 hỗ trợ chọn @@ Identity

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:232144
TÓM TẮT
Nhà cung cấp máy bay phản lực OLE DB Phiên bản 4.0 hỗ trợ truy vấn chọn @@ danh tính cho phép bạn để lấy giá trị của lĩnh vực tự động-tăng được tạo ra trên kết nối của bạn. Auto-tăng giá trị được sử dụng trên các kết nối cơ sở dữ liệu của bạn không làm ảnh hưởng đến kết quả truy vấn chuyên ngành này. Tính năng này làm việc với cơ sở dữ liệu máy bay phản lực 4.0, nhưng không phải với định dạng cũ hơn.
THÔNG TIN THÊM
Mã sau đây minh chứng bằng cách sử dụng chọn @@ danh tính để lấy giá trị của lĩnh vực mới được chèn vào auto-tăng. Đoạn mã này cũng bao gồm mã để tạo ra bảng cho các truy vấn.
Dim cnDatabase As ADODB.ConnectionDim rsNewAutoIncrement As ADODB.RecordsetDim strConn As StringDim strSQL As StringDim strPathToMDB As String   strPathToMDB = "C:\NewJet4.MDB"strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=" & strPathToMDB & ";"Set cnDatabase = New ADODB.Connection    cnDatabase.Open strConn        strSQL = "CREATE TABLE AutoIncrementTest " & _             "(ID int identity, Description varchar(40), " & _             "CONSTRAINT AutoIncrementTest_PrimaryKey PRIMARY KEY (ID))"    cnDatabase.Execute strSQL, , adCmdText + adExecuteNoRecords        strSQL = "INSERT INTO AutoIncrementTest " & _             "(Description) VALUES ('AutoIncrement Test')"    cnDatabase.Execute strSQL, , adCmdText + adExecuteNoRecords        strSQL = "SELECT @@Identity"    Set rsNewAutoIncrement = New ADODB.Recordset    rsNewAutoIncrement.Open strSQL, cnDatabase, adOpenForwardOnly, _                            adLockReadOnly, adCmdText    MsgBox "New Auto-increment value is: " & rsNewAutoIncrement(0).Value    rsNewAutoIncrement.Close    Set rsNewAutoIncrement = Nothing    strSQL = "DROP TABLE AutoIncrementTest"    cnDatabase.Execute strSQL, , adCmdText + adExecuteNoRecords    cnDatabase.CloseSet cnDatabase = Nothing				
Nhờ vào tính năng này mới được bổ sung, bạn có thể thấy giá trị vừa được thêm vào auto-tăng trong recordsets ActiveX Data Objects (ADO) phía khách hàng của bạn trong ADO 2,1 và sau này. Khi bạn gửi hàng mới để các nhà cung cấp máy bay phản lực bằng cách gọi Cập Nhật hoặc UpdateBatch (phụ thuộc vào sự lựa chọn của LockType), động cơ con trỏ ADO tạo ra một CHÈN vào truy vấn để tạo dòng mới trong bảng. Nếu recordset chứa một lĩnh vực tự động-tăng, ADO cũng sẽ tạo ra một truy vấn chọn @@ Identity để lấy giá trị được tạo ra cho lĩnh vực tự động-tăng đó. Mã sau đây chứng tỏ tính năng này:
Dim cnDatabase As ADODB.ConnectionDim rsNewAutoIncrement As ADODB.RecordsetDim strConn As StringDim strSQL As StringDim strPathToMDB As String    strPathToMDB = "C:\NewJet4.MDB"strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _          "Data Source=" & strPathToMDB & ";"    Set cnDatabase = New ADODB.Connection    cnDatabase.Open strConn        strSQL = "CREATE TABLE AutoIncrementTest " & _             "(ID int identity, Description varchar(40), " & _             "CONSTRAINT AutoIncrementTest_PrimaryKey PRIMARY KEY (ID))"    cnDatabase.Execute strSQL, , adCmdText + adExecuteNoRecords    strSQL = "SELECT ID, Description FROM AutoIncrementTest"    Set rsNewAutoIncrement = New ADODB.Recordset    rsNewAutoIncrement.CursorLocation = adUseClient    rsNewAutoIncrement.Open strSQL, cnDatabase, adOpenStatic, _                            adLockOptimistic, adCmdText    rsNewAutoIncrement.AddNew    rsNewAutoIncrement("Description").Value = "AutoIncrement Test"    rsNewAutoIncrement.Update    MsgBox "New Auto-increment value is: " & rsNewAutoIncrement(0).Value    rsNewAutoIncrement.Close    Set rsNewAutoIncrement = Nothing    strSQL = "DROP TABLE AutoIncrementTest"    cnDatabase.Execute strSQL, , adCmdText + adExecuteNoRecords    cnDatabase.CloseSet cnDatabase = Nothing				
Bạn có thể tạo cơ sở dữ liệu mới Jet 4,0 bằng cách sử dụng Microsoft Access 2000 hoặc bằng cách sử dụng thư viện ADOX được bao gồm với MDAC 2.1. Để sử dụng thư viện này trong dự án Visual Basic của bạn, tạo ra một tham chiếu đến Microsoft ADO Ext. 2.1 for Optical Mouse và an ninh. Bạn có thể sử dụng mã như sau đây để tạo ra một cơ sở dữ liệu máy bay phản lực 4,0 mới:
Dim strPathToMDB As StringDim catNewDatabase As ADOX.Catalog        strPathToMDB = "C:\NewJet4.MDB"    If Dir(strPathToMDB) <> "" Then        Kill strPathToMDB    End If    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _              "Data Source=" & strPathToMDB & ";"    Set catNewDatabase = New ADOX.Catalog    catNewDatabase.Create strConn    Set catNewDatabase = Nothing				
Để xác định các định dạng của cơ sở dữ liệu Microsoft Access, kiểm tra các tài sản "phản lực OLEDB:Engine kiểu" năng động trong bộ sưu tập thuộc tính của đối tượng kết nối. Các tài sản sẽ trả về một giá trị của 5 cho máy bay phản lực 4.x cơ sở dữ liệu. Đoạn mã sau đây thể hiện bằng cách sử dụng bất động sản:
Dim cnDatabase As ADODB.ConnectionDim strConn As StringDim strPathToMDB As String    strPathToMDB = "C:\NewJet4.MDB"strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _          "Data Source=" & strPathToMDB & ";"Set cnDatabase = New ADODB.Connection    cnDatabase.Open strConn    If cnDatabase.Properties("Jet OLEDB:Engine Type").Value = 5 Then        MsgBox "Jet 4.0 database"    Else        MsgBox "Not a Jet 4.0 database"    End If    cnDatabase.CloseSet cnDatabase = Nothing				
THAM KHẢO
Truy cập dữ liệu Microsoft SDK; tìm kiếm trên: "Thuộc tính Provider-Defined"; chủ đề: "dbpropset_jetoledb_dbinit"
ADOX nhận dạng máy bay phản lực AutoIncrement

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 232144 - Xem lại Lần cuối: 08/21/2011 11:22:00 - Bản sửa đổi: 2.0

Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7, 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

  • kbdatabase kbinfo kbjet kbmt KB232144 KbMtvi
Phản hồi