Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# ============================================================
|
||||
# Probe de LECTURE SEULE de la base Licence HFSQL via OLEDB.
|
||||
# N'effectue AUCUNE écriture. N'expose aucun secret.
|
||||
# ============================================================
|
||||
param(
|
||||
[string]$ConfigPath = "config/hfsql-test.local.json",
|
||||
[string]$Section = "LicenseConnection",
|
||||
[string]$DatabaseOverride = ""
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# --- Lecture de la config locale (contient les secrets) ---
|
||||
$config = Get-Content $ConfigPath -Raw | ConvertFrom-Json
|
||||
$db = $config.$Section
|
||||
|
||||
if ($null -eq $db) {
|
||||
Write-Output "SECTION $Section : ABSENTE"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$server = $db.Server
|
||||
$port = $db.Port
|
||||
$database = if ([string]::IsNullOrWhiteSpace($DatabaseOverride)) { $db.DatabaseName } else { $DatabaseOverride }
|
||||
$login = $db.Login
|
||||
$password = $db.Password
|
||||
|
||||
|
||||
Write-Output "=== PROBE LECTURE SEULE OLEDB HFSQL ==="
|
||||
Write-Output "Section : $Section"
|
||||
Write-Output "Server : $server"
|
||||
Write-Output "Port : $port"
|
||||
Write-Output "Database : $database"
|
||||
Write-Output "Login : $login"
|
||||
Write-Output "Provider : PCSOFT.HFSQL"
|
||||
Write-Output "Mode : LECTURE SEULE (aucune ecriture)"
|
||||
Write-Output ""
|
||||
|
||||
# --- Construction de la connection string OLEDB ---
|
||||
$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 "State : $($conn.State)"
|
||||
Write-Output ""
|
||||
|
||||
# --- Liste des tables ---
|
||||
$schema = $conn.GetOleDbSchemaTable([System.Data.OleDb.OleDbSchemaGuid]::Tables, $null)
|
||||
if ($null -eq $schema) {
|
||||
Write-Output "TABLES : schema non disponible"
|
||||
} else {
|
||||
Write-Output "TABLES ($($schema.Rows.Count)) :"
|
||||
foreach ($row in $schema.Rows) {
|
||||
$tableName = $row["TABLE_NAME"]
|
||||
$tableType = $row["TABLE_TYPE"]
|
||||
Write-Output " - $tableName [$tableType]"
|
||||
}
|
||||
}
|
||||
Write-Output ""
|
||||
|
||||
# --- Test SELECT 1 ---
|
||||
$cmd = $conn.CreateCommand()
|
||||
$cmd.CommandText = "SELECT 1"
|
||||
$result = $cmd.ExecuteScalar()
|
||||
Write-Output "SELECT 1 : $result"
|
||||
|
||||
$conn.Close()
|
||||
Write-Output ""
|
||||
Write-Output "CONNEXION : FERMEE"
|
||||
Write-Output "RESULTAT : OK (lecture seule)"
|
||||
exit 0
|
||||
}
|
||||
catch {
|
||||
Write-Output "CONNEXION : ECHEC"
|
||||
Write-Output "Erreur : $($_.Exception.Message)"
|
||||
Write-Output "RESULTAT : KO"
|
||||
exit 3
|
||||
}
|
||||
Reference in New Issue
Block a user