![]() |
Liste der sql Tabellen
:)
Wie kann man eine Liste der sql Tabellen abrufen? mfg Jonson |
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:
Dies geht aber nur für das aktuelle Benutzerkonto, oder als Administrator.
select * from user_catalog
Für Interbase und MySQL muss ich Deine Frage weitergeben. :coder: |
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:
Bei MySQL reicht ein einfaches
select RDB$RELATION_NAME from RDB$RELATIONS where RDB$RELATION_NAME not like 'RDB$%';
Code:
Gruß danielA
show tables;
|
Moin
erst Danke. Ich wollte die Tabellen in Delphi (listbox) sehen. geht das? mfg Jonson |
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); |
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 |
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. |
Hallo Jonson, :D
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 |
@Paul Jr.: Danke!
Jonson |
hmm,
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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