Get-EulTableSchema #
ÜBERSICHT #
Liefert die Spalten-Definition einer EULANDA-Tabelle als PSObject-Array.
SYNTAX #
Get-EulTableSchema [-Conn] <__ComObject> [-Table] <string> [<CommonParameters>]
BESCHREIBUNG #
Liest die Schema-Information einer SQL-Server-Tabelle: Spaltenname, Datentyp, Größe, Nullable, Primärschlüssel-Flag, Identity-Flag. Wird vom Excel-Pipeline-Layer (Tier 2) als Basis für Type-Mapping (SQL → Excel) und Update-by-Key-Strategie genutzt.
Reflection läuft über drei Queries:
- SELECT TOP 0 für ADO-Field-Definitionen (Name/Type/Size/Nullable)
- INFORMATION_SCHEMA für Primärschlüssel
- INFORMATION_SCHEMA + COLUMNPROPERTY für Identity und Computed
Tabellenname wird NICHT validiert – Plugin-Autor ist für Vertrauens- würdigkeit der Eingabe verantwortlich (kein User-Input direkt durch- reichen). Eulanda-Plugin-Kontext, kein End-User-SQL.
PARAMETER #
-Conn #
Type: __ComObject
ADODB.Connection-Objekt zur EULANDA-Datenbank. Caller-owns-Connection, wird NICHT geschlossen.
-Table #
Type: string
Tabellenname (z.B. ‘Artikel’, ‘Adresse’, ‘RechnungPos’).
AUSGABEN #
[PSCustomObject[]] mit Eigenschaften pro Spalte:
Name (string) Spaltenname Type (int) ADODB.DataTypeEnum Wert TypeName (string) Kurzer Type-Name (Int / String / Date / …) Size (int) Maximale Größe (bei String/Binary) Precision (int) Gesamtzahl Stellen (bei Decimal/Numeric) NumericScale (int) Nachkommastellen (bei Decimal/Numeric) IsNullable (bool) IsKey (bool) Teil des Primärschlüssels IsIdentity (bool) Auto-Increment-Spalte IsComputed (bool) Berechnete Spalte (kein INSERT/UPDATE möglich)
BEISPIELE #
$conn = Get-ConnByUdl -Udl 'C:\Eulanda\EULANDA_1 Mustermann.udl'
$cols = Get-EulTableSchema -Conn $conn -Table 'Artikel'
$cols | Where-Object IsKey | Select-Object Name, TypeName
# Liefert die PK-Spalten
# Update-by-Key bestimmen
$key = (Get-EulTableSchema -Conn $conn -Table 'Artikel' |
Where-Object IsKey | Select-Object -First 1).Name
HINWEISE #
Phase 4 Tier 1 – DB-Bausteine für Excel-Pipeline und allgemeine Reflection (auch für Reporting-/ABO-Skripte ohne Excel-Bezug nutzbar).