Error 8162

29/10/2008 - 17:01 por Leonardo Morales | Informe spam
Hola,
estoy trabajando con 2 procedimientos almacenados, uno llama al
otrorevisé los parámetros y están correctos en tipo y ubicación. De
forma aleatoria recibo el error :El parámetro formal '@haber_inc_sc' se
definió con OUTPUT, pero el parámetro real no se ha declarado con OUTPUT.

Lo extraño es que revisé la data que utilizan los procedimientos,
considerando data con la que se genera el error y otra data con la que no
tengo problemas...y no encontré nada anormal.

Estoy usando SqlServer 2000 SP4.

Alguna idea?
gracias.
Leonardo.

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
29/10/2008 - 17:19 | Informe spam
Confirme que el parámetro real para @haber_inc_sc es una variable y no una
constante o una expresión.

Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Leonardo Morales" wrote:

Hola,
estoy trabajando con 2 procedimientos almacenados, uno llama al
otrorevisé los parámetros y están correctos en tipo y ubicación. De
forma aleatoria recibo el error :El parámetro formal '@haber_inc_sc' se
definió con OUTPUT, pero el parámetro real no se ha declarado con OUTPUT.

Lo extraño es que revisé la data que utilizan los procedimientos,
considerando data con la que se genera el error y otra data con la que no
tengo problemas...y no encontré nada anormal.

Estoy usando SqlServer 2000 SP4.

Alguna idea?
gracias.
Leonardo.



Respuesta Responder a este mensaje
#2 SOLUCIONES PERU S.A.C.
29/10/2008 - 17:48 | Informe spam
Éste es un mensaje de varias partes en formato MIME.
=_NextPart_000_0183_01C939BC.3C1E66B0

Hola,
Revisa en tu codigo si estas poniendo en la propiedad Direction del parámetro como output
sqlCmd.Parameters.Item("@haber_inc_sc").Direction = ParameterDirection.InputOutput
o
sqlCmd.Parameters.Item("@haber_inc_sc").Direction = ParameterDirection.Output

A eso es lo que hace referencia el mensaje de error
que el parámetro en tu SQLServer parece no estar declarado como OUTPUT pero tu parámetro en el SQLCommand o según el lenguaje de programación que estés usando sí esta declarado..



Saludos


No dudes en visitar nuestro foros donde encontrarás respuestas con códigos de ejemplos:
http://foros.solucionesperu.com

MATRIX APOCALYPTIC®
Prueba Nuestro Generador de Código Personalizable
Completamente ¡GRATIS!
http://ma.solucionesperu.com/666
Descarga La Pitoniza y genera y sube la estructura de tu base de datos en XML


Atte.

Soluciones Empresariales
SOLUCIONES PERU S.A.C.
Jr. Ayacucho 582 Of. 102 | Trujillo - Perú
MOVI: 44-949890134 RPM: *292518 CLARO: 44-949379574
MSN:
FAVOR DE CONTACTARSE VÍA CORREO ELECTRÓNICO PARA COMUNICACIÓN FORMAL





"Leonardo Morales" escribió en el mensaje de noticias:Ohaov#
Hola,
estoy trabajando con 2 procedimientos almacenados, uno llama al
otrorevisé los parámetros y están correctos en tipo y ubicación. De
forma aleatoria recibo el error :El parámetro formal '@haber_inc_sc' se
definió con OUTPUT, pero el parámetro real no se ha declarado con OUTPUT.

Lo extraño es que revisé la data que utilizan los procedimientos,
considerando data con la que se genera el error y otra data con la que no
tengo problemas...y no encontré nada anormal.

Estoy usando SqlServer 2000 SP4.

Alguna idea?
gracias.
Leonardo.




=_NextPart_000_0183_01C939BC.3C1E66B0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.6001.18148" name=GENERATOR></HEAD>
<BODY id=MailContainerBody
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-TOP: 15px"
bgColor=#ffffff leftMargin=0 topMargin=0 CanvasTabStop="true"
name="Compose message area">
<DIV><FONT face=Arial size=2>Hola,</FONT></DIV>
<DIV><FONT face=Arial size=2>Revisa en tu codigo si estas poniendo en la
propiedad Direction del parámetro como output</FONT></DIV>
<DIV><FONT face=Arial size=2>sqlCmd.Parameters.Item("@<FONT
face="Times New Roman" size=3>haber_inc_sc</FONT>").Direction =
ParameterDirection.InputOutput</FONT></DIV>
<DIV><FONT face=Arial size=2>o</FONT></DIV>
<DIV>
<DIV><FONT face=Arial size=2>sqlCmd.Parameters.Item("@<FONT
face="Times New Roman" size=3>haber_inc_sc</FONT>").Direction =
ParameterDirection.Output</FONT></DIV></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>A eso es lo que hace referencia el mensaje de
error</FONT></DIV>
<DIV><FONT face=Arial size=2>que el parámetro en tu SQLServer parece no estar
declarado como OUTPUT pero tu parámetro en el SQLCommand o según el lenguaje de
programación que estés usando sí esta declarado..</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Saludos<BR></DIV></FONT>
<DIV>
<DIV><BR><FONT face=Arial size=2>No dudes en visitar nuestro foros donde
encontrarás respuestas con códigos de ejemplos:<BR></FONT><A
title="http://foros.solucionesperu.com&#10;CTRL + clic para seguir el vínculo"
href="wlmailhtml:{92D44FFC-1BC0-46E0-8BFB-17C80FCBDD26}mid://00000157/!x-usc:http://foros.solucionesperu.com/"><FONT
title="wlmailhtml:{92D44FFC-1BC0-46E0-8BFB-17C80FCBDD26}mid://00000157/!x-usc:http://foros.solucionesperu.com/&#10;CTRL + clic para seguir el vínculo"
face=Arial size=2>http://foros.solucionesperu.com<...t;/DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV>
<DIV class=Estilo3><FONT face=Arial size=2><SPAN style="COLOR: red">MATRIX
APOCALYPTIC®</SPAN><BR>Prueba Nuestro Generador de Código
Personalizable<BR>Completamente <SPAN style="COLOR: red">¡GRATIS!</SPAN><BR><A
href="wlmailhtml:{92D44FFC-1BC0-46E0-8BFB-17C80FCBDD26}mid://00000157/!x-usc:http://ma.solucionesperu.com/666"
target=_blank><FONT
title="wlmailhtml:{92D44FFC-1BC0-46E0-8BFB-17C80FCBDD26}mid://00000157/!x-usc:http://ma.solucionesperu.com/666&#10;CTRL + clic para seguir el vínculo"
color=#476c8e>http://ma.solucionesperu.com/666<...t;Descarga La
Pitoniza y genera y sube la estructura de tu base de datos en XML</FONT></DIV>
<DIV class=Estilo3><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV class=Estilo3><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV class=Estilo3><FONT face=Arial size=2>Atte.</FONT></DIV>
<DIV class=Estilo3>&nbsp;</DIV>
<DIV><SPAN class=Estilo3><FONT size=1><FONT face=Verdana><STRONG>Soluciones
Empresariales</STRONG><BR></FONT></FONT><STRONG><FONT color=#ff0000><FONT
size=1><FONT face=Verdana><SPAN class=Estilo4>SOLUCIONES PERU
S.A.C.</SPAN><BR></FONT></FONT></FONT></STRONG><FONT size=1><FONT
face=Verdana><FONT color=#000099><SPAN class=Estilo6>Jr. Ayacucho 582 Of. 102 |
Trujillo - Perú</SPAN><BR></FONT><STRONG>MOVI:
44-949890134</STRONG>&nbsp;&nbsp;&nbsp; <STRONG>RPM:
*292518</STRONG>&nbsp;&nbsp;&nbsp; CLARO: 44-949379574<BR>MSN: </FONT></FONT><A
href="wlmailhtml:{92D44FFC-1BC0-46E0-8BFB-17C80FCBDD26}mid://00000157/!x-usc:mailto:"><FONT
title="mailto:&#10;CTRL + clic para seguir el vínculo"
face=Verdana size=1></FONT></A><FONT size=1><FONT
face=Verdana> <BR><SPAN class=Estilo4><STRONG><FONT color=#ff0000>FAVOR DE
CONTACTARSE VÍA CORREO ELECTRÓNICO PARA COMUNICACIÓN
FORMAL</FONT></STRONG></SPAN></FONT></FONT></SPAN><BR></DIV><BR></DIV></DIV>
<DIV><FONT face=Arial size=2></FONT><BR><BR>"Leonardo Morales"
&lt;&gt; escribió en el mensaje de
noticias:Ohaov#<BR>&gt; Hola,<BR>&gt; estoy
trabajando con 2 procedimientos almacenados, uno llama al <BR>&gt;
otrorevisé los parámetros y están correctos en tipo y ubicación. De <BR>&gt;
forma aleatoria recibo el error :El parámetro formal '@haber_inc_sc' se <BR>&gt;
definió con OUTPUT, pero el parámetro real no se ha declarado con
OUTPUT.<BR>&gt; <BR>&gt; Lo extraño es que revisé la data que utilizan los
procedimientos, <BR>&gt; considerando data con la que se genera el error y otra
data con la que no <BR>&gt; tengo problemas...y no encontré nada
anormal.<BR>&gt; <BR>&gt; Estoy usando SqlServer 2000 SP4.<BR>&gt; <BR>&gt;
Alguna idea?<BR>&gt; gracias.<BR>&gt; Leonardo. <BR>&gt;
<BR>&gt;</DIV></BODY></HTML>

=_NextPart_000_0183_01C939BC.3C1E66B0--
Respuesta Responder a este mensaje
#3 Leonardo Morales
29/10/2008 - 18:28 | Informe spam
Gracias por vuestras respuestas,
Leonardo.
"Leonardo Morales" escribió en el mensaje
news:Ohaov%
Hola,
estoy trabajando con 2 procedimientos almacenados, uno llama al
otrorevisé los parámetros y están correctos en tipo y ubicación. De
forma aleatoria recibo el error :El parámetro formal '@haber_inc_sc' se
definió con OUTPUT, pero el parámetro real no se ha declarado con OUTPUT.

Lo extraño es que revisé la data que utilizan los procedimientos,
considerando data con la que se genera el error y otra data con la que no
tengo problemas...y no encontré nada anormal.

Estoy usando SqlServer 2000 SP4.

Alguna idea?
gracias.
Leonardo.

Respuesta Responder a este mensaje
#4 Leonardo Morales
29/10/2008 - 19:52 | Informe spam
Efectivamente el parámetro es una variable.

Lo que ocurre es lo siguiente:
Una aplicación cliente llama a un procedimiento almacenado P1, este
procedimiento llama a un Procedimiento P2. En P2 se define la variable
@haber_inc_sc como int. Dentro del cuerpo de P2 se llama a P3. P3 tiene
definido el parámetro en la misma ubicación y orden con que es llamado. Es
aquí donde aparece el error asociado al procedimiento P3.

Lo más extraño es que ocurre en forma arbitraria, pues he chequeado los
datos y no he encontrado nada anormal...incluso hice operaciones DBCC check
sobre la base de datos, update statisctics...pero sin resultados.

La definición de P1
CREATE PROCEDURE dbo.spliq_calc_individ
(@mes_proceso int,@ano_proceso int,@empresa_proceso int,@planta_proceso
int,
@fecha_fin_ant datetime,@tipo_proceso char(4),@tipo_calculo char(1),
@sp_usuario char(15))
...
La llamada a P2

exec spliq_haberes @mes_proceso, @ano_proceso,
@empresa_proceso,@planta_proceso,@sp_nro_trabajador,@sp_dv_trabajador,
@tipo_proceso, 'S',@fecha_fin_ant,@fec_inicio,
@fec_final,@sucursal,@centro_costo,
@tipo_trabajador,@convenio,@sp_tramo_carga_fam,@cod_cargo,@bTrabActivo,
@hab_dias_no_cubi,@haber_complement,@cod_sem_corrida,@flg_haber_sc,@cod_jornada
...
Definición de P2

CREATE PROCEDURE dbo.spliq_haberes
(@sp_mes_proceso int,@sp_ano_proceso int,@sp_empresa int,@sp_planta
int,@sp_nro_trabajador int,
@sp_dv_trabajador char(1),@sp_tipo_proceso char(4),@sp_con_formula
char(1),@sp_fin_anterior datetime,
@sp_ini_informacio datetime,@sp_fin_informacio datetime,@sp_cod_sucursal
int,@sp_cod_centro_cost int,
@sp_cod_tipo_trabaj char(2),@sp_nro_convenio int,@sp_tramo_carga_fam
char(1),@sp_cod_cargo int,
@bTrabActivo int,@hab_dias_no_cubi int,@haber_complement int,
@calcula_sem_corrida char(1),
@flg_haber_sc char(1),@cod_jornada int)

declare @haber_inc_sc int, @horas_jornada decimal(11,2), @haber_garmin
int,@dias_jornada int
otras declaraciones...

Llamada a P3

exec spliq_esq_masivo @sp_mes_proceso, @sp_ano_proceso, @sp_empresa,
@sp_planta, @sp_nro_trabajador,
@sp_dv_trabajador, @sp_tipo_proceso, @cod_haber_l,
@monto_haber_l, @unidad_moneda_l,@tip_trabajador_l,
@tipo_convenio_l, @hab_contabili_l,@tope_uf_l,
@mes_vigente_l, @proporcion_l, @rutina_l,
@prophab_l, @tope_minimo_l, @unidad_tope_min_l,
@moneda_tope_l ,@rebaja_atrasos_l,
@nBaseAtrasos, @sp_cod_centro_cost,
@sp_cod_sucursal,@sp_cod_centro_cost,
@sp_cod_tipo_trabaj,@sp_nro_convenio,
@sp_tramo_carga_fam,@sp_nombre,@sp_dias_proporcion,@sp_tipo_sueldo,
@sp_nDiasTrab,@sp_carga_fam_peso,@sp_fin_anterior,
@sp_ini_informacio,@sp_fin_informacio,@uf_anterior_l,@uf_hoy,@sp_dias_prophab,@haber_inc_sc,
@flg_haber_sc,@dias_jornada,@horas_jornada,@haber_garmin,@valor_completo
output,@valor_proporcion output,@nAtrasos_sp output

Definición de P3

CREATE PROCEDURE dbo.spliq_esq_masivo
( @sp_mes_proceso int, @sp_ano_proceso int, @sp_empresa int, @sp_planta int,
@sp_nro_trabajador int, @sp_dv_trabajador char(1), @sp_tipo_proceso char(4),
@cod_haber_l int,@monto_haber_l numeric(28,10), @unidad_moneda_l char(4),
@tip_trabajador_l char(2), @tipo_convenio_l int, @hab_contabili_l char(1),
@tope_uf_l numeric(28,10), @mes_vigente_l char(1), @proporcion_l char(1),
@rutina_l char(100),@prophab_l char(1), @tope_minimo_l numeric(28,10),
@unidad_tope_min_l char(4), @moneda_tope_l char(4) ,@rebaja_atrasos_l
char(1),
@nBaseAtrasos decimal(13,12),@centro_costo_l int,@sp_cod_sucursal int,
@sp_cod_centro_cost int, @sp_cod_tipo_trabaj char(2),@sp_nro_convenio int,
@sp_tramo_carga_fam char(1),@sp_nombre char(90), @sp_dias_proporcion
numeric(13,12),
@sp_tipo_sueldo char(1), @sp_nDiasTrab int,@sp_carga_fam_peso int,
@sp_fin_anterior datetime,@sp_ini_informacio datetime,@sp_fin_informacio
datetime ,
@uf_anterior_l numeric(28,10),@uf_hoy numeric(28,10), @sp_dias_prophab
numeric(13,12),
@haber_inc_sc int,@flg_haber_sc char(1),@dias_jornada int,@horas_jornada
decimal(11,2),@haber_garmin int,
@valor_completo numeric(28,10) output,@valor_proporcion numeric(28,10)
output,@nValorAtraso numeric(28,10) output )

Sólo los últimos 3 parámetros son output.


Gracias.







"Leonardo Morales" escribió en el mensaje
news:Ohaov%
Hola,
estoy trabajando con 2 procedimientos almacenados, uno llama al
otrorevisé los parámetros y están correctos en tipo y ubicación. De
forma aleatoria recibo el error :El parámetro formal '@haber_inc_sc' se
definió con OUTPUT, pero el parámetro real no se ha declarado con OUTPUT.

Lo extraño es que revisé la data que utilizan los procedimientos,
considerando data con la que se genera el error y otra data con la que no
tengo problemas...y no encontré nada anormal.

Estoy usando SqlServer 2000 SP4.

Alguna idea?
gracias.
Leonardo.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida