Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Schema mit Relationen aus ODBC Quelle lesen
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

Themenstarter:

Schema mit Relationen aus ODBC Quelle lesen

beantworten | zitieren | melden

verwendetes Datenbanksystem: ODBC

Hallo ihr DatenbankerInnen,

ich versuche aus einer ODBC Datenquelle das vollständige Datenbankschema auszulesen.
Tabellen habe ich bereits gelesen - auch deren Spalten und soweit ich das sehe sind zumindest die Primary-Keys auch dabei.

Nun möchte ich aber durchaus auch noch zusätzlich die Fremdschlüssel kennen, also die Relationen der Tabellen untereinander.

Leider bietet hier die ODBC, aber keine schöne "GetSchema" funktion an, welche dieses "auf einen Rutsch" bewerkstelligen würde - und ich bin mit meinem Latein am Ende.

Deshalb würde ich mich sehr freuen, wenn jemand hier helfen könnte das Schema zusammenzufummeln oder tipps geben kann, wo ich weitere Informationen bekommen kann.

Beste Grüße und vielen Dank im Vorraus
TG
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers
juetho
myCSharp.de - Member



Dabei seit:
Beiträge: 3358
Herkunft: Berlin

beantworten | zitieren | melden

Hallo,

dein Ziel kann vermutlich nicht mit GetSchema erreicht werden. In :rtfm: heißt es:
Zitat
Verstehen der anbieterspezifischen Schemaauflistungen
Microsoft Jet ODBC-Treiber
Der Microsoft SQL Server Jet ODBC-Treiber unterstützt neben den allgemeinen Schemaauflistungen auch die folgenden spezifischen Schemaauflistungen:
* Tables
* Indexes
* Columns
* Procedures
* ProcedureColumns
* ProcedureParameters
* Views
Von ForeignKeys ist leider nicht die Rede.

Was für eine Datenquelle hast du denn? Vielleicht gibt es einen besser geeigneten DbProvider als ausgerechnet die Minimalversion Odbc?

Gruß Jürgen
private Nachricht | Beiträge des Benutzers
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

Themenstarter:

beantworten | zitieren | melden

Nun leider kann ich es nicht sagen, welche Datenquelle es ist, da es keine fest definierte "Datenbank" (oder was auch immer für eine Struktur) ist, sondern alles was ODBC kann erlaubt.

Ich lasse mich aber gerne belehren, denn wenn OleDB - Treiber(?) ebenso gut verbreitet sein sollten wie ODBCs, bin ich nicht auf ODBC angewiesen.

Ich las grade "neben den allgemeinen [...] folgende spezifische".
Heißt das, dass "Tables" per GetSchema eventuell gar nicht verfügbar ist?

Gibt es eine Liste oder ähnliches, die mir sagt auf was ich mich bei ODBC verlassen kann?
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers
juetho
myCSharp.de - Member



Dabei seit:
Beiträge: 3358
Herkunft: Berlin

beantworten | zitieren | melden

Zitat von Grumbler85
Ich lasse mich aber gerne belehren, denn wenn OleDB - Treiber(?) ebenso gut verbreitet sein sollten wie ODBCs, bin ich nicht auf ODBC angewiesen.
Oledb ist eine Winzigkeit besser, bietet aber noch weniger Schemata. Die Seite, die ich vorhin zitiert hatte, enthält alles, was die Standardtreiber von ADO.NET anbieten.
Zitat
Ich las grade "neben den allgemeinen [...] folgende spezifische".
Heißt das, dass "Tables" per GetSchema eventuell gar nicht verfügbar ist?
Nein, "Tables" werden immer geliefert. Aber mit den Indizes fangen die Spezialitäten schon an. Eine csv-Datei beispielsweise hat keinen Index; also kann GetSchema auch nichts liefern (auch wenn es in obiger Liste enthalten ist; wahrscheinlich ist das eine leere Tabelle).
Zitat
Gibt es eine Liste oder ähnliches, die mir sagt auf was ich mich bei ODBC verlassen kann?
Siehe mein obiges Zitat - das ist diese Liste.

Jürgen

Nachtrag: Eine spezielle Datenquelle kann weitere Spezialitäten enthalten. Diese sind natürlich irgendwie gespeichert. Je nachdem können sie auch irgendwie abgefragt werden; aber Odbc enthält keinen allgemein passenden Befehl.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von juetho am .
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

Das alles über OleDB oder ODBC zu machen kommt aus zeiten von VB6 und hat eigentlich
in einer echten OOP Welt nicht mehr seine Berechtigung.

Du willst also eher soetwas wie :
http://code.google.com/p/migratordotnet/
http://code.google.com/p/fluentmigrator/
http://www.codeplex.com/RikMigrations

Alle haben einen OOP Weg um an die verschiedenen Schemata zu kommen.
private Nachricht | Beiträge des Benutzers