Benutzer mit den meisten Antworten
SQLServer mit GetSchema auslesen

Frage
-
Hallo,
stelle eine ältere Anwendung auf Parallelbetrieb (SQL Server oder MS Access gem. Userauswahl) um.
Bei der Schemaabfrage komme ich ins Schleudern und finde nichts im Netz:
Unter OLEDB funzt der Code:
Dim SchemaTable As DataTable
OLEDBConnect.open: REM ACCESS
SchemaTable = OLEDBConnect.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, Nothing})
OLEDBConnect.Close
Lese Tabellenname, Created, Changed aus.
Wie muss ich mit SQLConnect drangehen?
Versuchte mit
SchemaTable = SQLConnect.GetSchema("tables") aber da fehlen mir wohl Spalten.
Stehe wohl auf dem Schlauch....
Danke für Feedback.
Klaus
Antworten
-
Hallo Klaus,
GetSchema( "tables" ) liefert dir klarerweise nur Tabellen.
Oder meintest Du mit "fehlen mir wohl Spalten", dass in der Ergebnistabelle nicht alle von dir gewünschten Daten zur jeweiligen Tabelle zu sehen sind?
In diesem MSDN Artikel findest Du die Informationen, bei welcher Anfrage Du welche Daten zurückerhältst.
Falls Du mehr willst, musst Du andere Tabellen im SQL Server auslesen, bspw. mit:
SELECT * FROM sys.tables
oder für die Spalteninformationen:
SELECT * FROM sys.columns
wobei ich für die Spalteninformationen eher auf:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
zurückgreifen würde. Die ist doch einfacher zu verwenden. (INFORMATION_SCHEMA.TABLES gibt es zwar auch, da steht aber das, was Du wissen willst, nicht drin)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 17. August 2017 10:09
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 25. August 2017 12:21
Alle Antworten
-
Hallo Klaus,
GetSchema( "tables" ) liefert dir klarerweise nur Tabellen.
Oder meintest Du mit "fehlen mir wohl Spalten", dass in der Ergebnistabelle nicht alle von dir gewünschten Daten zur jeweiligen Tabelle zu sehen sind?
In diesem MSDN Artikel findest Du die Informationen, bei welcher Anfrage Du welche Daten zurückerhältst.
Falls Du mehr willst, musst Du andere Tabellen im SQL Server auslesen, bspw. mit:
SELECT * FROM sys.tables
oder für die Spalteninformationen:
SELECT * FROM sys.columns
wobei ich für die Spalteninformationen eher auf:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
zurückgreifen würde. Die ist doch einfacher zu verwenden. (INFORMATION_SCHEMA.TABLES gibt es zwar auch, da steht aber das, was Du wissen willst, nicht drin)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 17. August 2017 10:09
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 25. August 2017 12:21
-
Hallo Klaus,
versuche doch statt
SchemaTable = OLEDBConnect.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, Nothing})folgendes:
SchemaTable = OLEDBConnect.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
Grüße Alexander