AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Primärindex von Access Tabelle herausfinden?
Thema durchsuchen
Ansicht
Themen-Optionen

Primärindex von Access Tabelle herausfinden?

Ein Thema von dragi · begonnen am 22. Dez 2005 · letzter Beitrag vom 22. Dez 2005
Antwort Antwort
dragi

Registriert seit: 22. Jul 2003
198 Beiträge
 
Delphi 2005 Personal
 
#1

Primärindex von Access Tabelle herausfinden?

  Alt 22. Dez 2005, 10:53
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hallo,

ist es irgendwie möglich, den Primärindex einer Access Tabelle per code herauszufinden? Gibt es evtl. sogar eine Möglichkeit dies per SQL Statement geliefert zu bekommen?

Vielen Dank

Dragi
Delphi 3 Professional @home
Delphi 2005 PE @home
Delphi 2005 Enterprise @work
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Primärindex von Access Tabelle herausfinden?

  Alt 22. Dez 2005, 11:46
Hallo Dragi,

du kannst den Primärindex einer Tabelle über die ADO Extensions (ADOX) ermitteln. Du erhältst dabei den Namen, die beteiligten Attribute und einiges mehr. Die ADO Extensions musst du natürlich vorher importieren (Komponente | ActiveX importieren...).

Delphi-Quellcode:
uses
  ADOX;

// getippt und nicht ungetestet

function GetTable(cat: TADOCatalog; tbl: string): _Table;
var
  i: integer;
  a: Tables;
begin
  a := cat.DefaultInterface.Tables;
  for i := 0 to Pred(a.Count) do
    if CompareText(a.item[i].Name, tbl) = 0 then
    begin
      Result := a.item[i];
      Exit;
    end;
  Result := nil;
end;

function GetIndex(t: _Table; idx: string): _Index;
var
  i: integer;
  a: Indexes;
begin
  a := t.Indexes;
  for i := 0 to Pred(a.Count) do
    if CompareText(a.item[i].Name, idx) = 0 then
    begin
      Result := a.item[i];
      Exit;
    end;
  Result := nil;
end;

procedure TDemoForm.QueryIndex(tbl, idx: string);
var
  t: _Table;
  x: _Index;
begin
  t := GetTable(AdoCatalog, tblName);
  if Assigned(t) then
  begin
    x := GetIndex(t, idx);
    if Assigned(x) then
      if x.PrimaryIndex
        then ShowMessage('is primary index')
        else ShowMessage('is secondary index');
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
dragi

Registriert seit: 22. Jul 2003
198 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Primärindex von Access Tabelle herausfinden?

  Alt 22. Dez 2005, 11:48
Vielen Dank,

das werde ich direkt mal auprobieren!

Gruß

Dragi
Delphi 3 Professional @home
Delphi 2005 PE @home
Delphi 2005 Enterprise @work
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 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