104 lines
3.7 KiB
Ruby
104 lines
3.7 KiB
Ruby
#!/usr/bin/env ruby
|
|
# frozen_string_literal: true
|
|
|
|
require_relative 'drones/lib/dasu_executor'
|
|
|
|
puts "=== DASU-SQL4 - Estructura de tabla BonosAfiliado ==="
|
|
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] Estructura de la columna idsolicitud:"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT
|
|
COLUMN_NAME,
|
|
DATA_TYPE,
|
|
COLUMN_DEFAULT,
|
|
IS_NULLABLE
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_NAME = 'BonosAfiliado' AND COLUMN_NAME = 'idsolicitud'
|
|
", $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 " Columna: $($row.COLUMN_NAME)"
|
|
Write-Host " Tipo: $($row.DATA_TYPE)"
|
|
Write-Host " Default: $($row.COLUMN_DEFAULT)"
|
|
Write-Host " Nullable: $($row.IS_NULLABLE)"
|
|
} else {
|
|
Write-Host " Columna no encontrada"
|
|
}
|
|
|
|
Write-Host "`n[2] ¿Es idsolicitud una columna IDENTITY?"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT
|
|
c.name AS column_name,
|
|
t.name AS table_name,
|
|
COLUMNPROPERTY(OBJECT_ID(t.schema_name + '.' + t.name), c.name, 'IsIdentity') AS is_identity,
|
|
IDENT_CURRENT(t.schema_name + '.' + t.name) AS current_identity,
|
|
IDENT_INCR(t.schema_name + '.' + t.name) AS identity_increment,
|
|
IDENT_SEED(t.schema_name + '.' + t.name) AS identity_seed
|
|
FROM sys.columns c
|
|
JOIN sys.tables t ON c.object_id = t.object_id
|
|
WHERE t.name = 'BonosAfiliado' AND c.name = 'idsolicitud'
|
|
", $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 " ¿Es Identity?: $($row.is_identity)"
|
|
Write-Host " Seed (valor inicial): $($row.identity_seed)"
|
|
Write-Host " Incremento: $($row.identity_increment)"
|
|
Write-Host " Valor actual (IDENT_CURRENT): $($row.current_identity)"
|
|
} else {
|
|
Write-Host " No es columna IDENTITY o no existe"
|
|
}
|
|
|
|
Write-Host "`n[3] Valores reales de idsolicitud en últimos registros:"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT TOP 20 idsolicitud, fecha, codigoafiliado
|
|
FROM BonosAfiliado
|
|
ORDER BY 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) | afiliado=$($_.codigoafiliado)"
|
|
}
|
|
|
|
Write-Host "`n[4] ¿Hay registros con idsolicitud > 0?"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT COUNT(*) as c FROM BonosAfiliado WHERE idsolicitud > 0
|
|
", $conn)
|
|
$c = $cmd.ExecuteScalar()
|
|
Write-Host " Cantidad: $c"
|
|
|
|
Write-Host "`n[5] ¿Hay registros con idsolicitud = 0?"
|
|
$cmd = New-Object System.Data.SqlClient.SqlCommand("
|
|
SELECT COUNT(*) as c FROM BonosAfiliado WHERE idsolicitud = 0
|
|
", $conn)
|
|
$c = $cmd.ExecuteScalar()
|
|
Write-Host " Cantidad: $c"
|
|
|
|
Write-Host "`n[6] Máximo valor de 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"
|
|
|
|
$conn.Close()
|
|
PSCMD
|
|
|
|
DasuExecutor.execute_ps_on_dasu(ps_script)
|
|
|
|
puts "\n✅ Verificación completada"
|