Files
dtic-DIIAA/adn/tools/cli/verificar_identity_simple.rb
T

79 lines
2.5 KiB
Ruby

#!/usr/bin/env ruby
# frozen_string_literal: true
require_relative 'drones/lib/dasu_executor'
puts "=== DASU-SQL4 - Verificar si idsolicitud es IDENTITY ==="
puts ""
ps_script = <<~PSCMD.strip
$ErrorActionPreference = "Stop"
$connString = "Server=localhost;Database=sysdasuten;Integrated Security=true;TrustServerCertificate=yes;"
$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
$conn.Open()
Write-Host "[1] ¿Es idsolicitud una columna IDENTITY?"
$cmd = New-Object System.Data.SqlClient.SqlCommand("
SELECT COLUMNPROPERTY(OBJECT_ID('dbo.BonosAfiliado'), 'idsolicitud', 'IsIdentity')
", $conn)
$is_identity = $cmd.ExecuteScalar()
if ($is_identity -eq 1) {
Write-Host " SI, es columna IDENTITY"
} else {
Write-Host " NO, no es columna IDENTITY (valor: $is_identity)"
}
Write-Host "`n[2] Valor actual de IDENT_CURRENT:"
$cmd = New-Object System.Data.SqlClient.SqlCommand("
SELECT IDENT_CURRENT('dbo.BonosAfiliado')
", $conn)
try {
$current = $cmd.ExecuteScalar()
Write-Host " IDENT_CURRENT: $current"
} catch {
Write-Host " ERROR: $_"
}
Write-Host "`n[3] Contar registros con idsolicitud = 0 vs > 0:"
$cmd = New-Object System.Data.SqlClient.SqlCommand("
SELECT
SUM(CASE WHEN idsolicitud = 0 THEN 1 ELSE 0 END) as con_cero,
SUM(CASE WHEN idsolicitud > 0 THEN 1 ELSE 0 END) as con_mayor_cero
FROM BonosAfiliado
", $conn)
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
$ds = New-Object System.Data.DataSet
$adapter.Fill($ds)
if ($ds.Tables[0].Rows.Count -gt 0) {
$row = $ds.Tables[0].Rows[0]
Write-Host " Con idsolicitud=0: $($row.con_cero)"
Write-Host " Con idsolicitud>0: $($row.con_mayor_cero)"
}
Write-Host "`n[4] Máximo idsolicitud:"
$cmd = New-Object System.Data.SqlClient.SqlCommand("
SELECT MAX(idsolicitud) as max_id FROM BonosAfiliado
", $conn)
$max = $cmd.ExecuteScalar()
Write-Host " MAX(idsolicitud): $max"
Write-Host "`n[5] Últimos 5 registros por fecha (ver idsolicitud):"
$cmd = New-Object System.Data.SqlClient.SqlCommand("
SELECT TOP 5 idsolicitud, fecha, codigoafiliado
FROM BonosAfiliado
ORDER BY fecha DESC, idsolicitud DESC
", $conn)
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
$ds = New-Object System.Data.DataSet
$adapter.Fill($ds)
$ds.Tables[0].Rows | ForEach-Object {
Write-Host " idsolicitud=$($_.idsolicitud) | fecha=$($_.fecha)"
}
$conn.Close()
PSCMD
DasuExecutor.execute_ps_on_dasu(ps_script)
puts "\n✅ Verificación completada"