Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#14

Re: SQL um Tabellen und Feldnamen rauszufinden?

  Alt 12. Mär 2010, 08:01
Hallo Hoika,
Zitat von hoika:
Hallo,

Zitat:
TSession liefert die Datenbanken.
Unsinn !!!

Tschulligung

Wie ich schon geschrieben habe,
gibt es keine (Standard-)-Möglichkeit,
alle Datenbanken einer DB zu ermitteln.

Bsp.: Firebird:
Die Datei kann sich überall auf dem Server befinden.


Heiko
hast Du schon mal in die Hilfe geschaut?
Zitat von delphihilfe:
Die Methoden der Klasse TSession werden hier gezeigt.

Public Methoden
Name Beschreibung
AddAlias Fügt einen bestimmten Alias der Borland Database Engine (BDE) in die Sitzung eines SQL-Datenbankservers ein.
AddDriver Fügt einen bestimmten Alias der Borland Database Engine (BDE) in die Sitzung eines SQL-Datenbankservers ein.
AddPassword Fügt ein Kennwort in die aktuelle Sitzung ein, um auf verschlüsselte Paradox- oder dBASE-Tabellen zuzugreifen.
AddStandardAlias Fügt einen Standardalias der Borland Database Engine (BDE) für Paradox-, dBASE oder ASCII-Tabellen in die Sitzung ein.
Close Trennt die Sitzung von allen Datenbanken und schließt die Sitzung.
CloseDatabase Schließt eine der aktuellen Sitzung zugeordnete Datenbankverbindung.
DeleteAlias Entfernt einen bestimmten Alias der Borland Database Engin (BDE) aus der Sitzung.
DeleteDriver Entfernt einen bestimmten Alias der Borland Database Engine (BDE)-Treiber aus der Sitzung.
DropConnections Gibt alle inaktiven temporären Datenbankkomponenten frei, die einer Sitzung zugeordnet wurden.
FindDatabase Durchsucht in einer Sitzung die Liste der Komponenten nach einer angegebenen Datenbank.
GetAliasDriverName Stellt den Namen des Datenbanktreibers bereit, der von dem angegebenen und der Sitzung zugeordneten Alias der Borland Database Engine (BDE) verwendet wird.
GetAliasNames Fügt die Namen der dauerhaften Aliase der Borland Database Engine (BDE) in eine Stringliste ein.
GetAliasParams Ermittelt die Parameter, die einem Alias der Borland Database Engine (BDE) zugeordnet sind.
GetConfigParams Ruft Informationen über die Konfiguration der Borland Database Engine (BDE) ab.
GetDatabaseNames Fügt die Namen der dauerhaften Aliase der Borland Database Engine (BDE) und die Namen der in der Sitzung bekannten Datenbankkomponenten in eine Stringliste ein.
GetDriverNames Fügt die Namen der in der Sitzung verfügbaren Treiber der Borland Database Engine (BDE) in eine Stringliste ein.
GetDriverParams Fügt die Parameter eines bestimmten Treibers der Borland Database Engine (BDE) in eine Stringliste ein.
GetFieldNames Fügt die Feldnamen einer bestimmten Tabelle in eine Stringliste ein.
GetPassword Löst in der Sitzung die Ereignisbehandlungsroutine für OnPassword aus oder zeigt das Standarddialogfeld für die Kennworteingabe an.
GetStoredProcNames Fügt die Namen aller gespeicherten Prozeduren in eine Stringliste ein, die einer angegebenen, mit einem SQL-Datenbankserver verbundenen Datenbankkomponente zugeordnet sind.
GetTableNames Fügt die Namen der einer bestimmten Datenbankkomponente zugeordneten Tabellen in eine Stringliste ein.
IsAlias Legt fest, ob es sich bei einem String um einen bestehenden und in der Sitzung bekannten Datenbankalias der Borland Database Engine (BDE) handelt.
ModifyAlias Fügt Parameter in einen Alias der Borland Database Engine (BDE) ein oder ändert dessen Parameter.
ModifyDriver Fügt Parameter in einen Alias der Borland Database Engine (BDE) ein oder ändert dessen Parameter.
Open Startet eine Sitzung. Die Sitzung wird zur aktuellen Sitzung.
OpenDatabase Öffnet eine bestehende Datenbank oder erstellt und öffnet eine temporäre Datenbankkomponente.
RemoveAllPasswords Löscht alle Kennwörter für verschlüsselte Paradox-Tabellen, die in die aktuelle Sitzung eingefügt wurden.
RemovePassword Löscht einzelne Kennwörter für verschlüsselte Paradox-Tabellen, die in die aktuelle Sitzung eingefügt wurden.
SaveConfigFile Überträgt die aktuellen Informationen im BDE-Speicher aus dem Arbeitsspeicher in die BDE-Konfigurationsdatei auf der Festplatte.




Die Eigenschaften der Klasse TSession werden hier gezeigt.

Public Eigenschaften
Name Beschreibung
ConfigMode Legt fest, wie die Aliase der Sitzung von der Borland Database Engine (BDE) verwendet werden sollen.
DatabaseCount Gibt die Anzahl der aktiven Datenbankkomponenten an, die der Sitzung aktuell zugeordnet sind.
Databases Enthält ein indiziertes Array mit den Namen aller aktiven Datenbanken einer Sitzung.
Handle Legt das BDE-Handle für die Sitzung fest.
Locale Legt den Sprachtreiber der Borland Database Engine (BDE) für die Sitzung fest.
TraceFlags Legt die Datenbankoperationen fest, die zur Laufzeit mit dem SQL-Monitor überwacht werden.
Dazu noch folgenden Quelltext:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Database1: TDatabase;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
         i : Integer;
         k : Integer;
         sl1 : TstringList;
         sl2 : TstringList;
begin
  sl1 := TStringList.Create;
  sl2 := TStringList.Create;
  Session.GetAliasNames(memo1.lines);
  for i := 0 to memo1.lines.Count - 1 do Begin
    Database1.Close;
    Database1.AliasName := memo1.Lines[i];
    Database1.DatabaseName := memo1.Lines[i];
    Try
      Database1.Open;
      Database1.GetTableNames(sl1);
      memo2.Lines.Add('--- Datenbank ' + memo1.Lines[i]);
      for k := 0 to sl1.Count - 1 do begin
        memo2.Lines.Add('--- Feldauflistung zur Tabelle ' + sl1[k]);
        Database1.GetFieldNames(sl1[k],sl2);
        memo2.Lines.Add(sl2.Text);
      end;
    Except
      on e : Exception do begin
        memo2.Lines.add('--- ' + e.Message);
      end;
    End;
  End;
  sl2.Free;
  sl1.Free;
end;

end.
und Du hast das vom Threadersteller gewünschte Ergebnis über die BDE für alle Datenbanken die Tabellennamen und Feldname aufzulisten. Beim Einsatz der BDE kann man selbstverständlich nur die der BDE bekannten Datenbanken, Tabellen und Feldnamen auflisten. Die Aufgabenstellung lautet ja nicht: Liste mir alle für den Rechner theoretisch oder praktisch verfügbaren Datenbanken auf, von denen ich nicht mal weiß, ob es sie überhaupt gibt und von denen ich nicht mal weiß, wie ich auf sie zugreifen könnte.
Die BDE kann auf alle für sie konfigurierten Datenbanken zugreifen, hierzu zählen auch die auf dem Rechner eingerichteten ODBC-Treiber. Mehr ist nicht gefordert.

Spar die bitte in Zukunft solche Kommentare a la Unsinn.
  Mit Zitat antworten Zitat