Al momento sei offline in attesa che la connessione Internet venga ristabilita

Il tuo browser non è supportato

Devi aggiornare il browser per usare il sito.

Esegui l'aggiornamento all'ultima versione di Internet Explorer

INFORMAZIONI: Il provider OLE DB per Jet versione 4.0 supporta SELECT @@ IDENTITY

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 232144
Sommario
Il provider di versione 4.0 di OLE DB Jet supporta la query SELECT @@ IDENTITY, che consente di recuperare il valore del campo incremento automatico generato la connessione. I valori di incremento automatico utilizzati per le altre connessioni al database non influiscono sui risultati di questa query specializzate. Questa funzionalità funziona con database di Jet 4.0 ma non con formati precedenti.
Informazioni
Il codice riportato di seguito viene illustrato l'utilizzo dell'identità SELECT @@ per recuperare il valore del campo appena inserito con incremento automatico. Il frammento di codice include anche il codice per creare la tabella per la query.
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				
grazie a questa funzionalità appena aggiunta, è possibile visualizzare i valori di incremento automatico appena aggiunto in un recordset ActiveX Data Objects (ADO) lato client in ADO 2.1 e versioni successiva. Quando si invia la nuova riga il provider Jet tramite una chiamata Update o UpdateBatch (seconda il di LockType), il motore del cursore di ADO genera una query INSERT INTO per creare la nuova riga nella tabella. Se il recordset contiene un campo a incremento automatico, ADO genererà inoltre una query SELECT @@ IDENTITY per recuperare il valore generato per il campo incremento automatico. Nell'esempio di codice seguente viene illustrato questa funzionalità:
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				
è possibile creare un nuovo database di Jet 4.0 utilizzando Microsoft Access 2000 oppure utilizzando la libreria ADOX è inclusa in MDAC 2.1. Per utilizzare questa libreria nel progetto Visual Basic, è necessario creare un riferimento a Microsoft ADO Ext. 2.1 for DDL and Security . È quindi possibile utilizzare codice simile a quello riportato di seguito per creare un nuovo database di 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				
per determinare il formato del database di Microsoft Access, controllare la proprietà "Tipo Jet OLEDB:Engine" dinamica nell'insieme Properties dell'oggetto Connection. La proprietà restituirà un valore pari a 5 per i database di Jet 4.x. Nel frammento di codice riportato di seguito illustrato l'utilizzo della proprietà:
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				
Riferimenti
Microsoft Data Access SDK; cercare in: "Proprietà Provider-Defined"; argomento: "DBPROPSET_JETOLEDB_DBINIT"
AutoIncrement Jet identità ADOX

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 232144 - Ultima revisione: 12/03/2003 18:25:00 - Revisione: 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 KbMtit
Feedback
false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> .com/ms.js'><\/script>");