AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Liste der sql Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

Liste der sql Tabellen

Ein Thema von Jonson · begonnen am 13. Jun 2002 · letzter Beitrag vom 13. Aug 2003
Antwort Antwort
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#1

Liste der sql Tabellen

  Alt 13. Jun 2002, 22:10


Wie kann man eine Liste der sql Tabellen abrufen?

mfg

Jonson
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#2
  Alt 13. Jun 2002, 22:49
Darauf kann man leider keine allgemeingültige Antwort geben. Jede Datenbank besitzt eine gewisse Anzahl Systemtabellen, in welchen solche Informationen gespeichert sind.

Bei Access z.B. siehst Du diese Tabellen, wenn Du die Option "Systemtabellen anzeigen" einstellst.

Bei Oracle kann man ganz einfach alle Tabellen des Benutzerkontos, unter dem man eingeloggt ist abfragen:
Code:
select * from user_catalog
Dies geht aber nur für das aktuelle Benutzerkonto, oder als Administrator.
Für Interbase und MySQL muss ich Deine Frage weitergeben.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
danielA

Registriert seit: 10. Jun 2002
Ort: Hamburg
72 Beiträge
 
Delphi XE7 Enterprise
 
#3
  Alt 13. Jun 2002, 23:26
Hallo Jonson,

also bei Interbase bin ich mir nicht ganz sicher.
Die Systemdaten stehen alle in Tabellen die mit RDB$ beginnen. Folgende Query hat mir alle Tabellen in meiner Datenbank angezeigt. Ich hoffe das kann noch jemand anderes bestätigen.

Code:
select RDB$RELATION_NAME from RDB$RELATIONS where RDB$RELATION_NAME not like 'RDB$%';
Bei MySQL reicht ein einfaches

Code:
show tables;
Gruß danielA
  Mit Zitat antworten Zitat
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#4
  Alt 14. Jun 2002, 12:37
Moin

erst Danke.

Ich wollte die Tabellen in Delphi (listbox) sehen.

geht das?

mfg

Jonson
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#5
  Alt 14. Jun 2002, 12:49
Hallo Jonson,

ja das geht. Wenn du die SQL Abfrage von oben erstellt und ausgeführt hast, steht das Ergebnis ja als Datenmenge in einem TQuery (z.B. mit dem Namen qryTab) Objekt zur Verfügung.

Am einfachsten wäre jetzt die Anzeige in einem Grid, da ja nur eine DataSource Komponente mit dem Grid und der Query verbunden werden müsste. Zur Anzeige in der Listbox hilft folgender Code:

Code:
   LB.Clear;
   while not qryTab.EOF do
      LB.Items.Add(qryTab.FieldByName('RDB$RELATION_NAME').AsString);
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#6
  Alt 15. Jun 2002, 00:07
Hallo MrSpock,

ich kann es so nicht benutzen. Wie sollte ich es für andere Datenbanken einsetzen?

Oder klappt das auch z.b. unter Oracle?

mfg

Jonson
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7
  Alt 15. Jun 2002, 09:20
Hallo Jonson,

grundsätzlich hat jedes RDMS Systemtabellen, die die Namen der Tabellen enthalten. Wie diese bei Oracel heissen, kann ich leider nicht sagen. Wenn du aber die SQL Anweisung entsprechend anpasst, dann enthälst du die entsprechende Datenmenge und kannst sie wieder kopieren.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#8
  Alt 15. Jun 2002, 17:56
Hallo Jonson,

in der Tat... es gibt doch ein einfacher Weg um unabhängig von dem Datenbank-System sich alle dort vorhandene Tabellen anzeigen zu lassen.

Ein weg per System-Tabellen wie dies Mr. Spock hier vorschlägt ist im Prinzip korrekt... so lange wie lange man NUR eine Datenbank abfragen möchte. Hat man mit mehreren Datenbanken zu tun... wird die Sache schon etwas schwieriger. Ich habe in der Vergangenheit viel mit System-Tabellen gearbeitet...nun dies hier hätte Dich nur verwirrt.

Bei jedem Datenbank System heißen die System-Tabellen, die diese Informationen enthalten anders... (und was ist mit Paradox?)..., darum hier ein einfacher Weg:


[code:1:9b82504cf2]
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
  Mit Zitat antworten Zitat
Jonson

Registriert seit: 10. Jun 2002
43 Beiträge
 
#9
  Alt 16. Jun 2002, 08:43
@Paul Jr.: Danke!

Jonson
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#10

hmm,

  Alt 13. Aug 2003, 08:38
Zitat von Alfons_G:
Bei Access z.B. siehst Du diese Tabellen, wenn Du die Option "Systemtabellen anzeigen" einstellst.
Gibt es dazu auch ein SQL Statement ?
  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 18:33 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