PRIMARY KEY mit verknüpften Datensätzen
-
Hallo,
Da "Rund um.." sowieso langsam zum DB - Forum mutiert auch noch eine Frage von mir :).
Ich probiere mit ADO / DAO und der MS - Jet engine ein bisschen an einer ACCESS - DB herum, um mich (erstmals) ein bisschen mit SQL zu beschäftigen. Zum setzen des Primärschlüssels habe ich folgende SQL Befehlsfolge genommen:
ALTER TABLE [Images]
add CONSTRAINT Images_pKey PRIMARY KEY (Name)Soweit sogut. Leider bringt das nicht das gewünschte Ergebnis, sondern eine schicke Exception die da sagt:
"Datendefintionsanweisungen auf verknüpfte Datenquellen können nicht durchgeführt werden".
->Mir soweit auch logisch, da Images mit einer anderen Tabelle [Thumbnails1] verknüpft ist.
Wie kann ich das umgehen? Der selbe Fehler kommt bei jedem anderen ALTER TABLE auch.
-
Hi,
wie sind die Tabellen denn verknüpft?
Über Fremdschlüssel?!
-
Mhh, gute Frage. Wie kriege ich das raus? Jedenfalls zeigt er mir im ACCESS an den jeweiligen Tables schwarze Pfeile.
Ach ja, der Primärschlüssel (Tabelle Images) sitz auf einem Feld [Datensatz-Nr.] was so mit dem Feld [ID] in der Tabelle Thumbnails verknüpft ist.
Ich dachte eine Verknüpfung wäre lediglich eine Abhängigkeit auf eine andere Tabelle, oder?Der Fehler der JET - Engine lautet wie Folgt:
Fehler 3611:
Das Microsoft Jet-Datenbankmodul kann für eine verknüpfte ISAM-Tabelle oder für eine ODBC-Tabelle, die bereits einen eindeutigen Index hat, keinen Index erstellen.
Das würde in etwa heißen, das ich die Abhängigkeit der beiden Tabellen mal kurz aufheben muß, oder irre ich mich da?
-
Oha, hab gerade festgestellt, das die Tabelle Thumbnails aus einer seperaten Datenbank kommt. Jetzt muß ich also "nur noch" diese Verknüpfung lösen und dann sollte es gehen.
Wenn ich diese Datenbank einfach "verschwinden" lasse bleibt die Verknüpfung leider trotzdem bestehen.Hab gerade rausgefunden, wie sie verknüpft sind:
In der CDaoTableDefInfo kriege ich raus, das dbAttachedTable gesetzt ist
die MSDN sagt dazu:
Indicates the table is an attached table from a non-ODBC database, such as a Paradox database
Schätze mit ADO kann ich das jetzt lösen. Mir wäre aber lieber gewesen, eine Lösung mittels SQL zu haben. Naja, was solls..
-
TheBigW schrieb:
Mhh, gute Frage. Wie kriege ich das raus? Jedenfalls zeigt er mir im ACCESS an den jeweiligen Tables schwarze Pfeile.
Ach ja, der Primärschlüssel (Tabelle Images) sitz auf einem Feld [Datensatz-Nr.] was so mit dem Feld [ID] in der Tabelle Thumbnails verknüpft ist.
Ich dachte eine Verknüpfung wäre lediglich eine Abhängigkeit auf eine andere Tabelle, oder?Das ist eine 1:1 Verknüpfung über pKey, da kannst du nichts machen...
TheBigW schrieb:
Der Fehler der JET - Engine lautet wie Folgt:
Fehler 3611:
Das Microsoft Jet-Datenbankmodul kann für eine verknüpfte ISAM-Tabelle oder für eine ODBC-Tabelle, die bereits einen eindeutigen Index hat, keinen Index erstellen.
Das würde in etwa heißen, das ich die Abhängigkeit der beiden Tabellen mal kurz aufheben muß, oder irre ich mich da?
VORSICHT!!! Eine Auflösung des Schlüssels kann zu Datenverlust führen !
-
Ist sogar noch trivialer:
die Verknüpfungen sind jeweils wieder separate Datenbanken. Die muß ich in dem Fall nur einzelnen öffnen und schon gibt es keine Probleme mehr.
VORSICHT!!! Eine Auflösung des Schlüssels kann zu Datenverlust führen !
Stimmt, wenn ich eine der verlinkten Tabellen ändere muß ich die Änderung "nachziehen" Uähhh!!
Danke für Deine Hilfe.
(hat ein bisschen länger gedauert - hab noch bis Montag Urlaub
)