Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Error Creando SP MSQL 2005

Estas en el tema de Error Creando SP MSQL 2005 en el foro de SQL Server en Foros del Web. Hola buenas noches alguien me podria hechar una mano con este Procedimiento: Cita: Create Procedure Configuracion_Insert @MaximoHistorial int, @Reporte int, @ActualizarHoraEnCadaEvento bit, @CampoEspecialDef(0) nvarchar(15), @CampoEspecialDef(1) ...
  #1 (permalink)  
Antiguo 07/10/2010, 21:18
 
Fecha de Ingreso: abril-2008
Ubicación: Morelia, México
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Pregunta Error Creando SP MSQL 2005

Hola buenas noches alguien me podria hechar una mano con este Procedimiento:

Cita:
Create Procedure Configuracion_Insert
@MaximoHistorial int,
@Reporte int,
@ActualizarHoraEnCadaEvento bit,
@CampoEspecialDef(0) nvarchar(15),
@CampoEspecialDef(1) nvarchar(15),
@CampoEspecialDef(2) nvarchar(15),
@CampoEspecialDef(3) nvarchar(15),
@CampoEspecialDef(4) nvarchar(15),
@CampoEspecialDef(5) nvarchar(15),
@EjecutarRespaldo bit,
@RutaRespaldo nvarchar(255),
@SobreescribirRespaldos bit,
@AlertarRegistrosFaltantes bit,
@ConvertirTiempoAutomaticamente bit,
@CorteEnFechasEspecificas bit,
@DiaCorteMensual(0) smallint,
@DiaCorteMensual(1) smallint,
@DiaCorteMensual(2) smallint,
@DiaCorteMensual(3) smallint,
@DiaCorteMensual(4) smallint,
@DiaCorteSemanal smallint,
@GuardarHistorialMensajesLeidos bit,
@IncluirParametro0EnListaEmpleado bit,
@IncluirParametro1EnListaEmpleado bit,
@IncluirParametro2EnListaEmpleado bit,
@IncluirParametro3EnListaEmpleado bit,
@IncluirParametro4EnListaEmpleado bit,
@IncluirParametro5EnListaEmpleado bit,
@IncluirHorarioEnListaEmpleado bit,
@RegistrarSoloSiRelojBloqueado bit,
@MostrarFotografiasEnChecador bit,
@MostrarAnalisisDetalladoEnChecador bit,
@IDZonaHoraria int,
@RegistroHuellaDigital smallint,
@EquiposHuellaDigital ntext,
@RequerirNumeroYHuella bit,
@MostrarFotoAlChecar bit,
@ChecadorSoporteTecladoNumerico bit,
@MinutosToleranciaSalidaComida smallint,
@VerRetardosDeComidaEnChecador bit,
@upsize_ts timestamp
As
Begin
Insert Into Configuracion
([MaximoHistorial],[Reporte],[ActualizarHoraEnCadaEvento],[CampoEspecialDef(0)],[CampoEspecialDef(1)],[CampoEspecialDef(2)],[CampoEspecialDef(3)],[CampoEspecialDef(4)],[CampoEspecialDef(5)],[EjecutarRespaldo],[RutaRespaldo],[SobreescribirRespaldos],[AlertarRegistrosFaltantes],[ConvertirTiempoAutomaticamente],[CorteEnFechasEspecificas],[DiaCorteMensual(0)],[DiaCorteMensual(1)],[DiaCorteMensual(2)],[DiaCorteMensual(3)],[DiaCorteMensual(4)],[DiaCorteSemanal],[GuardarHistorialMensajesLeidos],[IncluirParametro0EnListaEmpleado],[IncluirParametro1EnListaEmpleado],[IncluirParametro2EnListaEmpleado],[IncluirParametro3EnListaEmpleado],[IncluirParametro4EnListaEmpleado],[IncluirParametro5EnListaEmpleado],[IncluirHorarioEnListaEmpleado],[RegistrarSoloSiRelojBloqueado],[MostrarFotografiasEnChecador],[MostrarAnalisisDetalladoEnChecador],[IDZonaHoraria],[RegistroHuellaDigital],[EquiposHuellaDigital],[RequerirNumeroYHuella],[MostrarFotoAlChecar],[ChecadorSoporteTecladoNumerico],[MinutosToleranciaSalidaComida],[VerRetardosDeComidaEnChecador])
Values
(@MaximoHistorial,@Reporte,@ActualizarHoraEnCadaEv ento,@CampoEspecialDef(0),@CampoEspecialDef(1),@Ca mpoEspecialDef(2),@CampoEspecialDef(3),@CampoEspec ialDef(4),@CampoEspecialDef(5),@EjecutarRespaldo,@ RutaRespaldo,@SobreescribirRespaldos,@AlertarRegis trosFaltantes,@ConvertirTiempoAutomaticamente,@Cor teEnFechasEspecificas,@DiaCorteMensual(0),@DiaCort eMensual(1),@DiaCorteMensual(2),@DiaCorteMensual(3 ),@DiaCorteMensual(4),@DiaCorteSemanal,@GuardarHis torialMensajesLeidos,@IncluirParametro0EnListaEmpl eado,@IncluirParametro1EnListaEmpleado,@IncluirPar ametro2EnListaEmpleado,@IncluirParametro3EnListaEm pleado,@IncluirParametro4EnListaEmpleado,@IncluirP arametro5EnListaEmpleado,@IncluirHorarioEnListaEmp leado,@RegistrarSoloSiRelojBloqueado,@MostrarFotog rafiasEnChecador,@MostrarAnalisisDetalladoEnChecad or,@IDZonaHoraria,@RegistroHuellaDigital,@EquiposH uellaDigital,@RequerirNumeroYHuella,@MostrarFotoAl Checar,@ChecadorSoporteTecladoNumerico,@MinutosTol eranciaSalidaComida,@VerRetardosDeComidaEnChecador )

Declare @ReferenceID int
Select @ReferenceID = @@IDENTITY

Return @ReferenceID

End
Al intentar Crearlo me marca los siguientes errores:

Mens 102, Nivel 15, Estado 1, Procedimiento Configuracion_Insert, Línea 11
Sintaxis incorrecta cerca de '('.
Mens 137, Nivel 15, Estado 2, Procedimiento Configuracion_Insert, Línea 54
Debe declarar la variable escalar "@CampoEspecialDef".



De antemano muchas gracias
  #2 (permalink)  
Antiguo 08/10/2010, 03:17
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 18 años, 3 meses
Puntos: 3
Respuesta: Error Creando SP MSQL 2005

Qué es CampoEspecialDef es una matriz o es un campo string común?
  #3 (permalink)  
Antiguo 08/10/2010, 09:12
 
Fecha de Ingreso: abril-2008
Ubicación: Morelia, México
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Error Creando SP MSQL 2005

Gustavoh10, gracias por tomarte un tiempo para analizar mi problema, te comento el CampoEspecialDef solo no existe es una serie de campos creados en la tabla con la siguientes identificaciones:
CampoEspecialDef(0) nvarchar(15)
CampoEspecialDef(1) nvarchar(15)
CampoEspecialDef(2) nvarchar(15)
CampoEspecialDef(3) nvarchar(15)
CampoEspecialDef(4) nvarchar(15)
CampoEspecialDef(5) nvarchar(15)


La verdad no se que es lo que este afectando si previamente estoy declarando las variables que recibirian los valores y que son las mismas que tienen los nombres de los campos

@CampoEspecialDef(0) nvarchar(15),
@CampoEspecialDef(1) nvarchar(15),
@CampoEspecialDef(2) nvarchar(15),
@CampoEspecialDef(3) nvarchar(15),
@CampoEspecialDef(4) nvarchar(15),
@CampoEspecialDef(5) nvarchar(15),

Gracias nuevamente y espero comentarios o ideas por donde esta el problema.
  #4 (permalink)  
Antiguo 08/10/2010, 10:22
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error Creando SP MSQL 2005

Nunca he visto un nombre de columna con (), pero bueno, si asi fue creado, encierralo entre corchetes

[CampoEspecialDef(0)]
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 08/10/2010, 10:35
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 18 años, 3 meses
Puntos: 3
Respuesta: Error Creando SP MSQL 2005

Cita:
Iniciado por iislas Ver Mensaje
Nunca he visto un nombre de columna con (), pero bueno, si asi fue creado, encierralo entre corchetes

[CampoEspecialDef(0)]
  #6 (permalink)  
Antiguo 08/10/2010, 10:36
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 18 años, 3 meses
Puntos: 3
Respuesta: Error Creando SP MSQL 2005

Osea que el campo se llama CampoEspecialDef(0), CampoEspecialDef(1)....
si es solo el nombre y no tiene una funcionalidad en especial, le pondria CampoEspecialDef_0, CampoEspecialDef_1.

Que haces cuando le pones []??
  #7 (permalink)  
Antiguo 08/10/2010, 11:11
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error Creando SP MSQL 2005

Es correcto, hay una guia de como crear los nombres de los objetos (UNC), Universal Named Convention, y creo haber visto que no se deben incluir caracteres especiales, tales como las "()".

No se de que forma los creaste, pero ya estan asi.

¿Que haces cuando le pones []?

Yo no hago nada, el motor de SQL Server, da por entendido que es un NOMBRE simplemente.

Por ejemplo, si yo el pusiera el nombre a un campo tal como: "Nombre Cliente" (con un espacio intermedio).

Al hacer una referencia de esa columna en un select por ejemplo, me daria un error:

SELECT NumCliente, Nombre Cliente FROM Cliente -- Error

Debo colocarlo entre corchetes

SELECT NumCliente, [Nombre Cliente] FROM Cliente -- Sin Error
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 08/10/2010, 11:28
 
Fecha de Ingreso: abril-2008
Ubicación: Morelia, México
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Error Creando SP MSQL 2005

Cita:
Iniciado por iislas Ver Mensaje
Nunca he visto un nombre de columna con (), pero bueno, si asi fue creado, encierralo entre corchetes

[CampoEspecialDef(0)]
Estimado iislas asi lo hago te anexo la consulta tal cual y solo tengo problemas en los procedimientos Insert y Update
Cita:
Create Procedure Configuracion_Insert
@MaximoHistorial int,
@Reporte int,
@ActualizarHoraEnCadaEvento bit,
@CampoEspecialDef(0) nvarchar(15),
@CampoEspecialDef(1) nvarchar(15),
@CampoEspecialDef(2) nvarchar(15),
@CampoEspecialDef(3) nvarchar(15),
@CampoEspecialDef(4) nvarchar(15),
@CampoEspecialDef(5) nvarchar(15),
@EjecutarRespaldo bit,
@RutaRespaldo nvarchar(255),
@SobreescribirRespaldos bit,
@AlertarRegistrosFaltantes bit,
@ConvertirTiempoAutomaticamente bit,
@CorteEnFechasEspecificas bit,
@DiaCorteMensual(0) smallint,
@DiaCorteMensual(1) smallint,
@DiaCorteMensual(2) smallint,
@DiaCorteMensual(3) smallint,
@DiaCorteMensual(4) smallint,
@DiaCorteSemanal smallint,
@GuardarHistorialMensajesLeidos bit,
@IncluirParametro0EnListaEmpleado bit,
@IncluirParametro1EnListaEmpleado bit,
@IncluirParametro2EnListaEmpleado bit,
@IncluirParametro3EnListaEmpleado bit,
@IncluirParametro4EnListaEmpleado bit,
@IncluirParametro5EnListaEmpleado bit,
@IncluirHorarioEnListaEmpleado bit,
@RegistrarSoloSiRelojBloqueado bit,
@MostrarFotografiasEnChecador bit,
@MostrarAnalisisDetalladoEnChecador bit,
@IDZonaHoraria int,
@RegistroHuellaDigital smallint,
@EquiposHuellaDigital ntext,
@RequerirNumeroYHuella bit,
@MostrarFotoAlChecar bit,
@ChecadorSoporteTecladoNumerico bit,
@MinutosToleranciaSalidaComida smallint,
@VerRetardosDeComidaEnChecador bit,
@upsize_ts timestamp
As
Begin
Insert Into Configuracion
([MaximoHistorial],[Reporte],[ActualizarHoraEnCadaEvento],[CampoEspecialDef(0)],[CampoEspecialDef(1)],[CampoEspecialDef(2)],[CampoEspecialDef(3)],[CampoEspecialDef(4)],[CampoEspecialDef(5)],[EjecutarRespaldo],[RutaRespaldo],[SobreescribirRespaldos],[AlertarRegistrosFaltantes],[ConvertirTiempoAutomaticamente],[CorteEnFechasEspecificas],[DiaCorteMensual(0)],[DiaCorteMensual(1)],[DiaCorteMensual(2)],[DiaCorteMensual(3)],[DiaCorteMensual(4)],[DiaCorteSemanal],[GuardarHistorialMensajesLeidos],[IncluirParametro0EnListaEmpleado],[IncluirParametro1EnListaEmpleado],[IncluirParametro2EnListaEmpleado],[IncluirParametro3EnListaEmpleado],[IncluirParametro4EnListaEmpleado],[IncluirParametro5EnListaEmpleado],[IncluirHorarioEnListaEmpleado],[RegistrarSoloSiRelojBloqueado],[MostrarFotografiasEnChecador],[MostrarAnalisisDetalladoEnChecador],[IDZonaHoraria],[RegistroHuellaDigital],[EquiposHuellaDigital],[RequerirNumeroYHuella],[MostrarFotoAlChecar],[ChecadorSoporteTecladoNumerico],[MinutosToleranciaSalidaComida],[VerRetardosDeComidaEnChecador])
Values
(@MaximoHistorial,@Reporte,@ActualizarHoraEnCadaEv ento,@CampoEspecialDef(0),@CampoEspecialDef(1),@Ca mpoEspecialDef(2),@CampoEspecialDef(3),@CampoEspec ialDef(4),@CampoEspecialDef(5),@EjecutarRespaldo,@ RutaRespaldo,@SobreescribirRespaldos,@AlertarRegis trosFaltantes,@ConvertirTiempoAutomaticamente,@Cor teEnFechasEspecificas,@DiaCorteMensual(0),@DiaCort eMensual(1),@DiaCorteMensual(2),@DiaCorteMensual(3 ),@DiaCorteMensual(4),@DiaCorteSemanal,@GuardarHis torialMensajesLeidos,@IncluirParametro0EnListaEmpl eado,@IncluirParametro1EnListaEmpleado,@IncluirPar ametro2EnListaEmpleado,@IncluirParametro3EnListaEm pleado,@IncluirParametro4EnListaEmpleado,@IncluirP arametro5EnListaEmpleado,@IncluirHorarioEnListaEmp leado,@RegistrarSoloSiRelojBloqueado,@MostrarFotog rafiasEnChecador,@MostrarAnalisisDetalladoEnChecad or,@IDZonaHoraria,@RegistroHuellaDigital,@EquiposH uellaDigital,@RequerirNumeroYHuella,@MostrarFotoAl Checar,@ChecadorSoporteTecladoNumerico,@MinutosTol eranciaSalidaComida,@VerRetardosDeComidaEnChecador )

Declare @ReferenceID int
Select @ReferenceID = @@IDENTITY

Return @ReferenceID

End
y al ejecutarla me marca estos errores:

Mens 102, Nivel 15, Estado 1, Procedimiento Configuracion_Insert, Línea 5
Sintaxis incorrecta cerca de '('.
Mens 137, Nivel 15, Estado 2, Procedimiento Configuracion_Insert, Línea 48
Debe declarar la variable escalar "@CampoEspecialDef".


Gracias por tu comentario
  #9 (permalink)  
Antiguo 08/10/2010, 11:44
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error Creando SP MSQL 2005

Compañero, debes encerrar entre corches TODOS y cada uno de los nombres que lleven (), incluidas las variables, desconozco porque insistes en ponerles () a los nombres de tus variables, ¿no podria ir asi?

@CampoEspecialDef_0 nvarchar(15),
__________________
MCTS Isaias Islas
  #10 (permalink)  
Antiguo 08/10/2010, 18:46
 
Fecha de Ingreso: abril-2008
Ubicación: Morelia, México
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
De acuerdo Respuesta: Error Creando SP MSQL 2005

Cita:
Iniciado por iislas Ver Mensaje
Compañero, debes encerrar entre corches TODOS y cada uno de los nombres que lleven (), incluidas las variables, desconozco porque insistes en ponerles () a los nombres de tus variables, ¿no podria ir asi?

@CampoEspecialDef_0 nvarchar(15),
Ya realise los cambios en las variables agregando los corchetes pero ahora me arroja los errores siguientes:

Mens 102, Nivel 15, Estado 1, Procedimiento Configuracion_Insert, Línea 11
Sintaxis incorrecta cerca de 'nvarchar'.


La razon por la cual insisto en utilizar estos nombres de campos o columnas se debe a que estoy migrando un sistema de Reloj Checador que esta creado con una base de datos de access, la base de datos la estoy cambiando por SQL Server 2005 por ello estoy batallando, pero no me va a quedar de otra que cambiar los nombres de columnas como me lo sugieren, aunque esto implica tambien cambiar el codigo del programa.

Saludos y gracias por sus aportaciones.
  #11 (permalink)  
Antiguo 11/10/2010, 12:53
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error Creando SP MSQL 2005

Creo que no hemos podido entendernos, NO PUEDES (no debes), utilizar () entre los nombres, si insistes en hacerlo, debes colocarlos entre CORCHETES, ¿si esta claro?

TODOS LOS NOMBRE que lleven (), deben ir entre []
__________________
MCTS Isaias Islas
  #12 (permalink)  
Antiguo 11/10/2010, 17:03
 
Fecha de Ingreso: abril-2008
Ubicación: Morelia, México
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Error Creando SP MSQL 2005

Cita:
Iniciado por iislas Ver Mensaje
Creo que no hemos podido entendernos, NO PUEDES (no debes), utilizar () entre los nombres, si insistes en hacerlo, debes colocarlos entre CORCHETES, ¿si esta claro?

TODOS LOS NOMBRE que lleven (), deben ir entre []
Estimado Iislas me queda claro que no es una buena practica el utilizar los (0) parentesis o caracteres especiales en los nombres de columnas pero como lo mencione en mi comentario anterior que contiene lo siguiente:

La razon por la cual insisto en utilizar estos nombres de campos o columnas se debe a que estoy migrando un sistema de Reloj Checador que esta creado con una base de datos de access, la base de datos la estoy cambiando por SQL Server 2005 por ello estoy batallando, pero no me va a quedar de otra que cambiar los nombres de columnas como me lo sugieren, aunque esto implica tambien cambiar el codigo del programa.

Ya realicé los cambios en las estructuras de las tablas, y en este momento estoy en el proceso de cambiar el codigo al programa, con lo cual se supera y queda resuleto este tema.

Te agradezco enormemente tus comentarios y sugerencias.....Saludos.
  #13 (permalink)  
Antiguo 11/10/2010, 17:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error Creando SP MSQL 2005

Amigo, segun el ultimo codigo que enviste, te faltan encerrar entre corchetes la variables:


Código SQL:
Ver original
  1. (@MaximoHistorial,@Reporte,@ActualizarHoraEnCadaEv ento,@CampoEspecialDef(0),@CampoEspecialDef(1),@Ca mpoEspecialDef(2),@CampoEspecialDef(3),@CampoEspec ialDef(4),@CampoEspecialDef(5),@EjecutarRespaldo,@ RutaRespaldo,@SobreescribirRespaldos,@AlertarRegis trosFaltantes,@ConvertirTiempoAutomaticamente,@Cor teEnFechasEspecificas,@DiaCorteMensual(0),@DiaCort eMensual(1),@DiaCorteMensual(2),@DiaCorteMensual(3 ),@DiaCorteMensual(4),@DiaCorteSemanal,@GuardarHis torialMensajesLeidos,@IncluirParametro0EnListaEmpl eado,@IncluirParametro1EnListaEmpleado,@IncluirPar ametro2EnListaEmpleado,@IncluirParametro3EnListaEm pleado,@IncluirParametro4EnListaEmpleado,@IncluirP arametro5EnListaEmpleado,@IncluirHorarioEnListaEmp leado,@RegistrarSoloSiRelojBloqueado,@MostrarFotog rafiasEnChecador,@MostrarAnalisisDetalladoEnChecad OR,@IDZonaHoraria,@RegistroHuellaDigital,@EquiposH uellaDigital,@RequerirNumeroYHuella,@MostrarFotoAl Checar,@ChecadorSoporteTecladoNumerico,@MinutosTol eranciaSalidaComida,@VerRetardosDeComidaEnChecador )

Por lo demas, me queda claro tu problema.

Saluds
__________________
MCTS Isaias Islas

Etiquetas: msql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.