vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
mehrspaltiger Primärschlüssel ?! 
Autor: tzgvfr
Datum: 22.11.10 15:29

Hallo, ich wurschtel jetzt schon seit Stunden an einer Fehlermeldung herum mit der ich absolut nichts anfangen kann.

"
System.Runtime.InteropServices.COMException (0x80004005): Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben.
bei ADOX.Keys.Append(Object Item, KeyTypeEnum Type, Object Column, String RelatedTable, String RelatedColumn)
"

Kurz zum Verständnis. Es geht um eine Datenbanktabelle. Diese hat aktuell einen einspaltigen Primärschlüssel. Es muss aber im Nachhinein noch eine Spalte Datum hinein die auch zum Primärschlüssel gehören soll. Dieser soll a) entweder erweitert werden um die Spalte Datum , oder b) gelöscht und mit zwei Spalten neuangelegt werden. ich habe beide Varianten schon versucht, aber komme nicht weiter. Hier der Quellcode:


---------------

Dim ADOcon2 As ADODB.Connection = New ADODB.Connection
Dim ADOcat2 As ADOX.Catalog = New ADOX.Catalog
Dim ADOtab2 As ADOX.Table = New ADOX.Table
Dim ADOrec2 As ADODB.Recordset = New ADODB.Recordset
Dim Adofield2 As ADODB.Field
Dim ADOKey2 As ADOX.Key = New ADOX.Key
 
Dim sConn2 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data" & _
  "Source=xyz.accdb;"
 
ADOcat2.Create(sConn2)
ADOcon2.Open(sConn2)
ADOcat2.ActiveConnection = ADOcon2
 
'neue tabellenspalte in die Tabelle M (durchläuft eine For-Schleife und ist in 
' der aktuellen, Index M) einfügen --> das klappt und funktioniert auch
ADOcat2.Tables(m).Columns.Append("Datum", ADOX.DataTypeEnum.adDate, 50)
 
'Primärschlüssel löschen --> geht auch
ADOcat2.Tables(m).Keys.Delete(0)
 
ADOKey2.Name = "PrimaryKey"
ADOKey2.Type = KeyTypeEnum.adKeyPrimary
ADOKey2.Columns.Append("Datum")                           'Spalte namens 
' "Datum" 1. Teil des PS
ADOKey2.Columns.Append(ADOcat2.Tables(m).Columns(0).Name) '1.Spalte, Name 
' variabel 2. Teil des PS
 
ADOcat2.Tables(m).Keys.Append(ADOKey2)
ADOcat2.Tables.Append(ADOcat2.Tables(m))
--------------------


Danke für eure Antworten,

viele Grüße Heinz
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
mehrspaltiger Primärschlüssel ?!1.264tzgvfr22.11.10 15:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel