AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ACCESS wie kann man Abfragen und Tabellen unterscheiden
Thema durchsuchen
Ansicht
Themen-Optionen

ACCESS wie kann man Abfragen und Tabellen unterscheiden

Ein Thema von p80286 · begonnen am 10. Dez 2009 · letzter Beitrag vom 14. Dez 2009
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

ACCESS wie kann man Abfragen und Tabellen unterscheiden

  Alt 10. Dez 2009, 16:08
Datenbank: ACCESS • Version: 2000 • Zugriff über: ADO
Hallo Zusammen,

Unter ADO kommt man ja mit GetTableNames an alle Tabellen in einer ACCESS-DB heran. Das Dumme ist nur, das gleichzeitig alle vorhandenen Abfragen auch als Tabellen ausgegeben werden.
Über die Systemtabellen hab ich schon versucht die entsprechende Info zu bekommen, aber da gibt's nur unverständliches Kauderwelsch oder Lesefehler.

Habt Ihr einen Tip für mich, wie ich Tabellen und Abfragen unterscheiden kann?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#2

Re: ACCESS wie kann man Abfragen und Tabellen unterscheiden

  Alt 10. Dez 2009, 16:18
Kann es sein, daß deine Abfragen zufällig genauso heißen wie Tabellen?
Hab es gerade bei mir getestet und ich krieg nur die Tabellen.

Ich habe in einer Access DB eine Tabelle und zwei Abfragen angelegt.
Bekomme mit GetTablenNames nur die eine Tabelle.

Delphi-Quellcode:
var
  Conn: TADOConnection;
  TableNames: TStringList;
begin
...
   Conn.GetTableNames(TableNames);
...
Edit:
Du hast Recht, die Abfragen tauchen doch in der Liste auf, meine Abfragen waren ungültig und wurden deshalb nicht ausgewertet.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: ACCESS wie kann man Abfragen und Tabellen unterscheiden

  Alt 12. Dez 2009, 08:23
Hallo,

viell. jhilft dir die letzte Antwort aus folgendem Thread.

1

Wo wir gerade bei OpenSchema sind

2

Dort nach "Verwenden Sie den folgenden Code, um nur die Tabellen in der Access-Datenbank "Nwind"" suchen


Heiko
Heiko
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: ACCESS wie kann man Abfragen und Tabellen unterscheiden

  Alt 12. Dez 2009, 09:02
Vielleicht klappt das: Jede "Tabelle" öffnen und schauen, ob sie Read-Only ist.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

Re: ACCESS wie kann man Abfragen und Tabellen unterscheiden

  Alt 14. Dez 2009, 15:07
Danke für den Hiweis,

ich hab jetzt folgendes genommen (aus der RTL kopiert)
Delphi-Quellcode:
{ - gettables:   -------}
  TypeField,
  NameField: TField;
  TableType: WideString;
  DataSet: TADODataSet;
  list : twidestrings;
begin
  ..
  list:=twidestrings.create;
  adoconnection1.Connected:=true;
  DataSet := TADODataSet.Create(nil);
  try
    adoconnection1.OpenSchema(siTables, EmptyParam, EmptyParam, DataSet);
    TypeField := DataSet.FieldByName('TABLE_TYPE'); { do not localize }
    NameField := DataSet.FieldByName('TABLE_NAME'); { do not localize }
    try
      List.Clear;
      while not DataSet.EOF do
      begin
        TableType := TypeField.AsWideString;
        if (TableType = 'TABLE') then { Hier habe ich VIEW gelöscht! }
          List.Add(NameField.AsWideString);
        DataSet.Next;
      end;
    finally
    end;
  finally
    DataSet.Free;
  end;
  for i:=0 to list.count-1 do
    memo1.Lines.add(list[i]); { die Ausgabe }
Den Vorschlag mi Readonly hab ich nicht ausprobiert, vielleicht mal wenn ich vieeel Zeit habe.
Vielen Dank nochmal an alle!

K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 12:23 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