Jet OLE DB versi 4.0 penyedia mendukung permintaan Pilih @@ identitas yang memungkinkan Anda untuk mengambil nilai dari field auto-kenaikan yang dihasilkan pada koneksi Anda. Auto-peningkatan nilai-nilai yang digunakan pada lain koneksi ke database Anda tidak mempengaruhi hasil query khusus ini. Fitur ini bekerja dengan database Jet 4.0 tetapi tidak dengan format yang lebih tua.
Kode berikut menunjukkan menggunakan Pilih @@ identitas untuk mengambil nilai dari field baru disisipkan auto-kenaikan. Potongan kode juga termasuk kode untuk membuat tabel untuk query.
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
Terima kasih untuk ini baru menambahkan fungsionalitas, Anda dapat melihat nilai-nilai baru ditambahkan auto-kenaikan di recordsets objek Data ActiveX (ADO) sisi klien Anda dalam ADO 2,1 dan belakangan. Ketika Anda mengirimkan baris baru untuk penyedia Jet dengan menelepon Update atau UpdateBatch (tergantung pada pilihan Anda dari LockType), ADO kursor mesin menghasilkan permintaan masukkan ke dalam untuk membuat baris baru dalam tabel. Jika recordset berisi kenaikan otomatis lapangan, ADO juga akan menghasilkan sebuah pilih @@ identitas query untuk mengambil nilai yang dihasilkan untuk bidang auto increment. Kode berikut menunjukkan fitur ini:
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
Anda dapat membuat database Jet 4.0 baru menggunakan Microsoft Access 2000 atau menggunakan perpustakaan ADOX yang disertakan dengan MDAC 2.1. Untuk menggunakan perpustakaan ini dalam proyek Visual Basic Anda, membuat referensi untuk
Microsoft ADO Ext. 2.1 untuk DDL dan keamanan. Anda dapat menggunakan kode seperti berikut untuk membuat sebuah database Jet 4.0 yang baru:
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
Untuk menentukan format Microsoft Access database Anda, periksa properti "Jet OLEDB:Engine jenis" dinamis dalam koleksi properti objek sambungan. Properti akan mengembalikan nilai 5 untuk Jet 4.x database. Kode snippet berikut menunjukkan menggunakan properti:
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
Microsoft Data akses SDK; pencarian di: "Properti Provider-Defined";
topik: "DBPROPSET_JETOLEDB_DBINIT"