BILGI: Jet OLE DB sağlayıcısı, sürüm 4.0 Supports @@ kimlik SELECT.

Makale çevirileri Makale çevirileri
Makale numarası: 232144 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Sürüm 4.0 Jet OLE DB sağlayıcısı bağlantınızda oluşturulan otomatik artış alanın değerini almanıza olanak tanır, SELECT @@ kimlik sorgu destekler. Bu özel sorgu sonuçları, otomatik artış değeri veritabanınızda diğer bağlantılarda kullanılan etkilemez. Bu özellik, Jet 4.0 veritabanları ile ancak eski biçimleriyle çalışır.

Daha fazla bilgi

Aşağıdaki kod <a0>Yeni eklenen bir otomatik artım</a0> alanının değerini almak için SELECT @@ kimliğini kullanarak gösterir. Kod parçacığını, kod, tablo sorgu oluşturmak için de içerir.
Dim cnDatabase As ADODB.Connection
Dim rsNewAutoIncrement As ADODB.Recordset
Dim strConn As String
Dim strSQL As String
Dim 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.Close
Set cnDatabase = Nothing
				
Yeni eklenen bu işlevsellik sayesinde, ADO 2.1 ve daha sonra istemci tarafı ActiveX Data Objects (ADO) kayıt kümesi içinde yeni eklenen otomatik artış değerleri görebilirsiniz. Jet Sağlayıcısı için yeni bir satır güncelleştirme veya UpdateBatch (seçtiğiniz LockType bağlı) çağırarak gönderdiğinizde, ADO imleç altyapısı tabloda yeni bir satır oluşturmak için INSERT INTO sorgusu oluşturur. ADO, recordset için bir otomatik artım alan içeriyorsa, SELECT @@ kimlik sorguda, otomatik artış alanı için oluşturulan değerini almak için de oluşturur. Bu özellik aşağıdaki kod gösterir:
Dim cnDatabase As ADODB.Connection
Dim rsNewAutoIncrement As ADODB.Recordset
Dim strConn As String
Dim strSQL As String
Dim 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.Close
Set cnDatabase = Nothing
				
, Microsoft Access 2000'i kullanarak veya MDAC 2.1 ile birlikte gelen ADOX kitaplık kullanarak yeni bir Jet 4.0 veritabanı oluşturabilirsiniz. Visual Basic projenizde bu Kitaplığı'nı kullanmak için Microsoft ADO Ext. 2.1 ve güvenlik için bir başvuru oluşturun. Aşağıdaki gibi bir kod daha sonra yeni bir Jet 4.0 veritabanı oluşturmak için kullanabilirsiniz:
Dim strPathToMDB As String
Dim 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
				
Microsoft Access veritabanınızın biçimini belirlemek için <a0></a0>, Connection nesnesinin Properties derlemesinde dinamik "Jet OLEDB:Engine Type" özelliği denetleyin. Özelliğin Jet 4.x veritabanları için 5 değerini döndürecektir. Aşağıdaki kod parçacığını özelli?ini kullanarak gösterir:
Dim cnDatabase As ADODB.Connection
Dim strConn As String
Dim 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.Close
Set cnDatabase = Nothing
				

Referanslar

Microsoft Data Access SDK; arama: "Provider-Defined özellikleri"; Konu: "DBPROPSET_JETOLEDB_DBINIT"

Özellikler

Makale numarası: 232144 - Last Review: 3 Aralık 2003 Çarşamba - Gözden geçirme: 3.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft OLE DB Provider for Jet 4.0
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft ActiveX Data Objects 2.6
  • 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
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Anahtar Kelimeler: 
kbmt kbdatabase kbinfo kbjet KB232144 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:232144

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com