Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

INFO: OLE-DB-Provider für Jet 4.0 unterstützt SELECT @@ IDENTITY

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 232144
Zusammenfassung
Der Jet OLE DB 4.0 Provider unterstützt die SELECT @@ IDENTITY Abfrage, die Ihnen ermöglicht, den Wert des Feldes Auto-Inkrement auf Ihre Verbindung generiert abzurufen. Auf anderen Verbindungen zu Ihrer Datenbank verwendeten automatisch inkrementierte Werte wirken sich die Ergebnisse dieser speziellen Abfrage nicht. Dieses Feature funktioniert mit Jet 4.0-Datenbanken jedoch nicht mit älteren Formate.
Weitere Informationen
Der folgende Code veranschaulicht, mit SELECT @@ IDENTITY den Wert des Felds neu eingefügten Auto-Inkrement abgerufen. Der Codeausschnitt enthält auch Code, um die Tabelle für die Abfrage zu erstellen.
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				
Dank dieser hinzugefügten Funktionen zum können Sie die neu hinzugefügte automatisch inkrementierte Werte in die clientseitige (ActiveX Data Objects) Recordsets in ADO 2.1 und höher. Wenn Sie die neue Zeile der Jet-Provider senden, durch Aufrufen von Update oder UpdateBatch (je nach Auswahl des LockType), generiert das ADO-Cursor-Modul eine INSERT INTO-Abfrage um die neue Zeile in der Tabelle zu erstellen. Wenn das Recordset ein Auto-Inkrement-Feld enthält, Generieren ADO auch eine SELECT @@ IDENTITY-Abfrage zum Abrufen des Werts für das Auto-Inkrement-Feld generiert. Der folgende Code veranschaulicht dieses Feature:
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				
können Sie eine neue Jet 4.0-Datenbank mithilfe von Microsoft Access 2000 oder mithilfe von ADOX-Bibliothek MDAC 2.1 enthaltene erstellen. Erstellen Sie diese in Ihrem Projekt Visual Basic Bibliothek verwenden möchten, einen Verweis auf Microsoft ADO Ext. 2.1 for DDL and Security . Anschließend können Sie Code wie den folgenden Erstellen einer neuen Jet 4.0-Datenbank:
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				
um das Format von Microsoft Access-Datenbank zu bestimmen, überprüfen Sie die dynamische "Jet OLEDB:Engine Type"-Eigenschaft in das Verbindungsobjekt Properties-Auflistung. Die Eigenschaft wird einen Wert von 5 für Jet 4.x-Datenbanken zurückgegeben. Im folgenden Codeausschnitt wird die Verwendung der Eigenschaft veranschaulicht:
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				
Informationsquellen
Microsoft Data Access SDK; Suche nach: "Provider-Defined Eigenschaften"; Thema: "DBPROPSET_JETOLEDB_DBINIT"
ADOX Jet Identität AutoIncrement

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 232144 – Letzte Überarbeitung: 12/03/2003 18:25:00 – Revision: 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 KbMtde
Feedback
=">"display:none;" onerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> -'+language.locale}}" href="" ng-click="setLanguage(language);" class="ng-binding" id="language-es-uy">Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
/html>I=4050&did=1&t=">;m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> mp;t=">protocol) + "//c.microsoft.com/ms.js'><\/script>"); &t=">