Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Primärschlüssel eine Tabelle einer AccessDB ermitteln (https://www.delphipraxis.net/11360-primaerschluessel-eine-tabelle-einer-accessdb-ermitteln.html)

Solid01 5. Nov 2003 09:16


Primärschlüssel eine Tabelle einer AccessDB ermitteln
 
Hallo zusammen,
hoffe ihr könnt mir helfen, hab nämlich nach Stundenlanger Suche im I-Net immer noch keine Lösung gefunden. Mein Problem ist folgendes:
Ich möchte mit Delphi heraus bekommen welchen bzw. welche Primärschlüssel eine Tabelle einer AccessDatenbank hat. Hab es bereits mit der Methode GetIndexNames der Klasse TADODataset ausprobiert, aber da gibt er mir einfach keinen Wert zurück. Obwohl sich die Hilfe zu der Methode eigentlich genau nach dem anhört was ich suche. Woran kann das liegen, oder wie kann ich das noch anders heraus bekommen?
Danke schon mal im Voraus für jegliche Denkanstöße. Is wichtig!

Gruß Solid01.

MrSpock 5. Nov 2003 09:27

Re: Primärschlüssel eine Tabelle einer AccessDB ermitteln
 
Hallo Solid01,

zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum.

Zu dem Thema hatten wir kürzlich diesen Thread, den du dir einmal anschauen solltest.

Sharky 5. Nov 2003 09:28

Re: Primärschlüssel eine Tabelle einer AccessDB ermitteln
 
Hai Solid01,

herzlich willkommen in der Delphi-PRAXIS.

Ich habe es eben mal mit einer TADOTable getestet und es ging ohne Probleme:

Delphi-Quellcode:
 
 ADOTable1.GetIndexNames(Memo1.Lines);

Solid01 5. Nov 2003 10:19

Re: Primärschlüssel eine Tabelle einer AccessDB ermitteln
 
Hi,
erst mal danke für die Antworten und die nette Begrüßung. :-)
Hab es jetzt auch mit der ADOTable probiert und er gibt mir zumindest etwas zurück.
Allerdings nicht den Primärschlüssel, sondern irgend welche anderen Felder. In diesen Feldern
kommt immer ID mit drin vor, wobei aber nicht jedes Feld angezeigt wird bei dem es so ist. Is
richtig komisch. Bei einigen Tabellen gibt er mir auch irgend welche Hexa-Decimalen Kombinationen
zurück, also wahrscheinlich irgend ne Adresse. Was kann ich denn überhaupt falsch machen, dass es bei
dir funzt und bei mir nicht? Hab an den Komponenten eigentlich nicht viel rumgeschraubt. Steht fast
alles auf den Defaulteinstellungen. Muß ich bei der Connection vielleicht noch irgend etwas beachten?
Kannst du mir vielleicht mal das Proggie, bei dem es funzt schicken bzw. hoch laden?

Gruß Solid01

Solid01 5. Nov 2003 12:57

Re: Primärschlüssel eine Tabelle einer AccessDB ermitteln
 
Hi,
das Problem wird jetzt ein wenig klarer. Es ist so, dass einem GetIndexNames nicht den Namen des Primärschlüssels, sondern die Namen der Indizes (Wie der Name ja auch eigentlich schon sagt) zurück gibt. Unter Access kann man, wenn in der entwurfsansicht einer tabelle auf ansicht -> indizes klickt, sich diese anzeigen lassen. Was ich aber brauche sind ja nicht die Namen der Indizes sondern der Name des Feldes, das mit dem Index "Primärschlüssel" verknüpft ist.
Also ist somit, getIndexNames die falsche Methode. Gibt es da noch eine andere Methode, bzw. andere Vorgehensweise, wie ich dann an das Feld komm, das als Primärschlüssel dient?

Gruß Solid01

MrSpock 5. Nov 2003 13:13

Re: Primärschlüssel eine Tabelle einer AccessDB ermitteln
 
Hallo Solid1,

hast du meinen Link oben einmal angeklickt?

Dort findest du:

Delphi-Quellcode:
MyADOTable.IndexName := '';
for i := 0 to MyAdoTable.IndexFieldCount-1 do
  myListBox.Add('Feld '+IntToStr(i+1)+': '+MyAdoTable.IndexFieldNames[i]);

Solid01 5. Nov 2003 13:42

Re: Primärschlüssel eine Tabelle einer AccessDB ermitteln
 
Hi,
danke, dass du mich noch mal auf deinen Link aufmerksam gemacht hast. Die unterste Lösung hat gefunzt.
Danke für die Hilfe!

Gruß Solid01


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz