![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: BDE
Primärschlüssel per BDE bestimmen
Hallo,
ich bestimme mit der unteren Funktion den Primärschlüssel von Tabellen in einer Firebird-Datenbank.
Delphi-Quellcode:
procedure GetPrimaryKey();
begin Check(DbiOpenIndexList(FDatabase.Handle,PChar(TableName),nil,hCur)); try while (DbiGetNextRecord(hCur,dbiNoLock,@idx,nil) = DBIERR_NONE) do begin if idx.bPrimary then begin // mache was mit dem Primärindex end; end; finally Check( DbiCloseCursor(hCur) ); end; end; Es funktioniert auch grundsätzlich aber nicht bei allen Tabellen. Hat jemand einen Tipp woran es liegen könnte? [edit=alcaeus]Delphi-Tags eingefuegt. Bitte in Zukunft selbst machen. Danke :) Mfg, alcaeus[/edit] |
Re: Primärschlüssel per BDE bestimmen
[edit=alcaeus]Delphi-Tags eingefuegt. Bitte in Zukunft selbst machen. Danke :) Mfg, alcaeus[/edit][/quote]
Sorry und Danke. hab selbst was rausgefunden. Sieht nach einem BDE-Problem aus :-( Scheinbar liegt es daran, das die BDE die Primärschlüssel daran erkennt, dass der Indexname, den der Primärschlüssel nutzt (nicht der Name des Primärschlüssel), mit
SQL-Code:
beginnt.
RDB$PRIMARY...
Dieser ist in der Systemtabelle
SQL-Code:
in der Spalte
RDB$RELATION_CONSTRAINTS
SQL-Code:
zu finden.
RDB$INDEX_NAME
Bei den Tabellen zu den ich keinen Primärschlüssel bekomme, ist nämlich der Indexname gleich dem Primärschlüsselnamen! Schade. Muß ich wohl die Systemtabellen bemühen, um den Primärschlüssel zu bestimmen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz