Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi VIEW erkennen (https://www.delphipraxis.net/69522-view-erkennen.html)

Aenogym 16. Mai 2006 15:00

Datenbank: Access • Version: 2000 • Zugriff über: ADO (Jet 4)

VIEW erkennen
 
hi ihr,

ich habe in meiner access-datenbank ein view. wenn ich mir per TADOConnection.GetTableNames() die namen der tabellen ausgeben lasse, dann ist in dieser liste auch mein view drin. soweit so gut.
nur: wie kann ich erfahren, ob es sich bei einem eintrag in dieser liste um eine tabelle oder ein view handelt (ist mir zur entwurfszeit nicht bekannt)?

danke schonmal,
aeno

shmia 16. Mai 2006 15:46

Re: VIEW erkennen
 
das geht über ADOX.

Delphi-Quellcode:
uses ADOX_TLB; // Typbibliothek, muss zuvor importiert werden

var
   ADOXcatalog : _Catalog;

....
   ADOXcatalog := CoCatalog.Create; // in FormCreate
....
   ADOXcatalog.Set_ActiveConnection(ADOConnection1.ConnectionObject);
....

function IsView(const TableName:string):Boolean;
var
   i : Integer;
   T : Tables;
begin
   T := ADOXcatalog.Tables;

   for i := 0 to T.Count-1 do
   begin
      if T.Item[i].Name = TableName then
      begin
         Result := Pos('VIEW', T.Item[i].Type_) > 0;
         Exit;
      end;
   end;
   Result := False;
end;

marabu 16. Mai 2006 18:47

Re: VIEW erkennen
 
Hallo.

Als Alternative zu ADOX kann man auch den Provider befragen:

Delphi-Quellcode:
function GetTableType(conn: TADOConnection; sTable: String): String;
var
  ds: TADODataSet;
begin
  ds := TADODataSet.Create(nil);
  ds.Connection := conn;
  conn.OpenSchema(siTables, EmptyParam, EmptyParam, ds);
  ds.Open;
  if ds.Locate('TABLE_NAME', sTable, [])
    then Result := ds.FieldValues['TABLE_TYPE']
    else Result := '';
  ds.Close;
  ds.Free;
end;
Freundliche Grüße vom marabu

Aenogym 16. Mai 2006 19:04

Re: VIEW erkennen
 
danke euch beiden! das werd ich dann morgen gleich ausprobieren.

aenogym


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 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-2025 by Thomas Breitkreuz