Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Paradox Tabellenstruktur auslesen? (https://www.delphipraxis.net/62477-paradox-tabellenstruktur-auslesen.html)

Mitchl55 5. Feb 2006 11:48

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

Paradox Tabellenstruktur auslesen?
 
Hallo,

weiß jemand, wie ich die Tabellenstruktur einer Pradoxdatei auslesen kann?

Brauche "Field Name", "Type" und "Size"
und
vieviele Zeichen ist ein Numeric Feld lang?

Hab dazu nix gefunden dazu....


Danke & Gruß

Mitchl

marabu 5. Feb 2006 12:49

Re: Paradox Tabellenstruktur auslesen?
 
Hallo Mitchl,

eine von vielen Möglichkeiten zeige ich dir hier, du kannst das sicher an deine Bedürfnisse anpassen.

Delphi-Quellcode:
function GetFieldInfo(const dbname, tblname, fldnames: String; s: TStrings): Boolean;
var
  q: TQuery;
  i: Integer;
begin
  Result := false;
  s.Clear;
  q := TQuery.Create(nil);
  with q do
  begin
    DatabaseName := dbname;
    SQL.Text := Format('select %s from %s where 1 = 0', [fldnames, tblname]);
    try
      Open;
    except
      Exit;
    end;
    try
      for i := 0 to Pred(Fields.Count) do
        s.Add(Format('%s,%s,%d', [
          Fields[i].FieldName,
          FieldTypeNames[Fields[i].DataType],
          Fields[i].DataSize
        ]));
    finally
      Close;
    end;
    Result := true;
  end;
end;

procedure TDemoForm.InfoButtonClick(Sender: TObject);
var
  i: Integer;
  s: TStrings;
begin
  s := TStringList.Create;
  if GetFieldInfo('DBDEMOS', 'country', '*', s) then
  begin
    StringGrid.RowCount := Succ(s.Count);
    StringGrid.Rows[0].CommaText := 'Name,Type,Size';
    for i := 0 to Pred(s.Count) do
      StringGrid.Rows[Succ(i)].CommaText := s[i];
  end;
  s.Free;
end;
Grüße vom marabu

Mitchl55 5. Feb 2006 13:04

Re: Paradox Tabellenstruktur auslesen?
 
Letzte kurze und evtl. blöde Frage bevor ich das ausprobiere!

Sieht ein wenig nach SQL-aus, benutze das aber nicht zum ansteuern der Datenbanken!

Geht das dann auch??

Auf dem Gebiet bin ich noch nicht gewesen??


Danke & Gruß

Mitchl

marabu 5. Feb 2006 13:26

Re: Paradox Tabellenstruktur auslesen?
 
Ob du in den anderen Teilen deines Programms SQL benutzt oder nicht ist egal. In der Funktion GetFieldInfo() habe ich eine Query verwendet, weil ich so die gewünschten Metadaten alleine einlesen kann - ohne die überflüssigen echten Daten. Es gibt noch kompliziertere Wege um dein Ziel zu erreichen. Leichtere sind mir gerade keine eingefallen. Und vielleicht kommst du ja auch auf den Geschmack und wirst dich in Zukunft mehr mit SQL beschäftigen. Dann steht dir auch die Welt der Client-Server-Datenbanksysteme offen.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 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