56 lines
1.6 KiB
PowerShell
56 lines
1.6 KiB
PowerShell
# ============================================================
|
|
# Liste les bases (catalogues) disponibles sur le serveur HFSQL.
|
|
# Se connecte à une base accessible (BATIK_TEST) puis liste les
|
|
# catalogues via le schéma OLEDB. LECTURE SEULE.
|
|
# ============================================================
|
|
param(
|
|
[string]$ConfigPath = "config/hfsql-test.local.json"
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$config = Get-Content $ConfigPath -Raw | ConvertFrom-Json
|
|
$db = $config.Hfsql
|
|
|
|
$server = $db.Server
|
|
$port = $db.Port
|
|
$database = $db.DatabaseName
|
|
$login = $db.Login
|
|
$password = $db.Password
|
|
|
|
Write-Output "=== LISTE DES BASES HFSQL (serveur $server`:$port) ==="
|
|
Write-Output "Connexion d'ancrage : $database"
|
|
Write-Output ""
|
|
|
|
$connStr = "Provider=PCSOFT.HFSQL;Data Source=$server`:$port;Initial Catalog=$database;User ID=$login;Password=$password"
|
|
|
|
try {
|
|
$conn = New-Object System.Data.OleDb.OleDbConnection($connStr)
|
|
$conn.Open()
|
|
Write-Output "CONNEXION : OUVERTE"
|
|
Write-Output ""
|
|
|
|
# --- Liste des catalogues (bases) ---
|
|
$schema = $conn.GetOleDbSchemaTable([System.Data.OleDb.OleDbSchemaGuid]::Catalogs, $null)
|
|
if ($null -eq $schema) {
|
|
Write-Output "CATALOGUES : schema non disponible"
|
|
} else {
|
|
Write-Output "CATALOGUES ($($schema.Rows.Count)) :"
|
|
foreach ($row in $schema.Rows) {
|
|
$catalogName = $row["CATALOG_NAME"]
|
|
Write-Output " - $catalogName"
|
|
}
|
|
}
|
|
|
|
$conn.Close()
|
|
Write-Output ""
|
|
Write-Output "RESULTAT : OK"
|
|
exit 0
|
|
}
|
|
catch {
|
|
Write-Output "CONNEXION : ECHEC"
|
|
Write-Output "Erreur : $($_.Exception.Message)"
|
|
Write-Output "RESULTAT : KO"
|
|
exit 3
|
|
}
|