Foros del Web » Programación para mayores de 30 ;) » .NET »

Solucion al misterio del paso de datos a un sp

Estas en el tema de Solucion al misterio del paso de datos a un sp en el foro de .NET en Foros del Web. Despues de 4 desveladas y el empleo de varios plumones Marca Esterbrook, gracias a Dios encontre la solución. eran unas comillas de texto para el ...
  #1 (permalink)  
Antiguo 07/09/2005, 10:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 142
Antigüedad: 19 años, 6 meses
Puntos: 0
Solucion al misterio del paso de datos a un sp

Despues de 4 desveladas y el empleo de varios plumones Marca Esterbrook, gracias a Dios encontre la solución. eran unas comillas de texto para el paso de los parametros al sp
Aqui el codigo de c#
Código:
   dbManager dbm=new dbManager();
   string getQueryString="exec getasistenciaSemana '"
	+ lblFecha.Text +"','"
	+ dgMesEmpleado.SelectedItem.Cells[0].Text.ToString();
             +"'";
   dbm.ExecNonQuery(getQueryString);
   getQueryString="exec getAsistTabla ";
   dbm.FillDataGrid(getQueryString,dgSemana,"tblSemanaAsistencia");
ahora el codigo del sp
Código:
ALTER procedure getAsistenciaSemana

   @idFechas char(10),
   @rfc  char(13)

AS
  DECLARE @inicio int
  DECLARE @fin int
  DECLARE @fini datetime
  DECLARE @ffin datetime
  DECLARE @dia int
  declare @asis int
  declare @ret int
  declare @falta int
  declare  @idFecha datetime

  SET DATEFIRST 7 /* pone como primer dia de la semana el domingo, requerimientos de la empresa*/
  SET dateformat YMD /*como se esta trabajando en w2003 eng, hay que poner la fecha en ese formato */

/*rutina para obtener el periodo de tiempo que  conforma la semana */
  select @dia=( SELECT DATEPART(dw,@idfechas) )
  SELECT @inicio=(@dia-1)*-1
  SELECT @fin=7-@dia
  IF @inicio=0
    SELECT @fini=@idFechas
  ELSE
    SELECT @fini=DATEADD(dd,@inicio,@idFechas)
  IF @ffin=0
    SELECT @ffin=@idFechas
  ELSE
    SELECT @ffin=DATEADD(dd,@fin,@idFechas)

/*fija los valores que se van a devolver a c# */
select @ret=(select count(atiempo) from vasistencias where atiempo=0 and rfc =@rfc AND idfecha>=@fini and idfecha<=@ffin)
 select @asis=(select count(atiempo) from vasistencias where atiempo=1 and rfc =@rfc AND idfecha>=@fini and idfecha<=@ffin)
  select @falta=(Select 6-(@ret+@asis))

  Select @asis as Asistencias ,@ret as Retardos,@falta as Faltas
RETURN
gracias por sus comentarios y saludos!!!
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 19:29.