Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Tu explorador no es compatible

Debes actualizar tu explorador para usar el sitio.

Actualiza a la versión más reciente de Internet Explorer

INFORMACIÓN: El proveedor OLE DB de Jet 4.0 admite SELECT @@ Identity

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 232144
Resumen
El proveedor de la versión 4.0 de OLE DB de Jet admite la consulta SELECT @@ Identity que permite recuperar el valor del campo de incremento automático generado en la conexión. Valores de incremento automático utilizado en otras conexiones a la base de datos no afectan a los resultados de esta consulta especializada. Esta característica funciona con bases de datos Jet 4.0, pero no con formatos más antiguos.
Más información
El código siguiente muestra cómo utilizar la identidad de @@ SELECT para recuperar el valor del campo de incremento automático recién insertado. El fragmento de código también incluye código para crear la tabla de la consulta.
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				
gracias esta funcionalidad recién agregada, puede ver los valores de incremento automático recién agregado en los conjuntos de registros ActiveX Data Objects (ADO) de lado del cliente en ADO 2.1 y versiones posteriores. Cuando envíe la nueva fila para el proveedor Jet llamando a Update o UpdateBatch (dependiendo de LockType), el motor de cursor de ADO genera una consulta INSERT INTO para crear la nueva fila en la tabla. Si el conjunto de registros contiene un campo de incremento automático, ADO también generará una consulta SELECT @@ Identity para recuperar el valor generado para ese campo de incremento automático. El código siguiente muestra esta característica:
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				
se puede crear una nueva base de Jet 4.0 datos mediante Microsoft Access 2000 o mediante la biblioteca ADOX que se incluye con MDAC 2.1. Para utilizar esta biblioteca en el proyecto Visual Basic, crear una referencia a Microsoft ADO Ext. 2.1 for DDL and Security . A continuación, puede utilizar código similar al siguiente para crear una nueva base de datos de Jet 4.0:
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				
para determinar el formato de la base de datos de Microsoft Access, compruebe la propiedad de "Jet OLEDB:Engine tipo" dinámica en colección Properties del objeto Connection. La propiedad devolverá un valor de 5 para bases de datos de Jet 4.x. El fragmento de código siguiente muestra cómo utilizar la propiedad:
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				
Referencias
Microsoft Data Access SDK; busque en: "Provider-Defined propiedades"; tema: "DBPROPSET_JETOLEDB_DBINIT"
AutoIncrement de identidad de Jet ADOX

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 232144 - Última revisión: 12/03/2003 18:25:00 - Revisión: 3.1

  • 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
  • kbmt kbdatabase kbinfo kbjet KB232144 KbMtes
Comentarios