
07/09/2005, 10:00
|
| | Fecha de Ingreso: octubre-2004
Mensajes: 142
Antigüedad: 20 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!!! |