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

Misterio sobre paso y devolucion de datos a un sp

Estas en el tema de Misterio sobre paso y devolucion de datos a un sp en el foro de .NET en Foros del Web. Saludos a todos Pues eme aqui, sentado y contrariado... llevo mas de una semana examinando un sp y un código en c# el cual ya ...
  #1 (permalink)  
Antiguo 04/09/2005, 14:49
 
Fecha de Ingreso: octubre-2004
Mensajes: 142
Antigüedad: 19 años, 6 meses
Puntos: 0
Misterio sobre paso y devolucion de datos a un sp

Saludos a todos

Pues eme aqui, sentado y contrariado... llevo mas de una semana examinando un sp y un código en c# el cual ya he cambiado cientos de vecesy el resultado es el mismo.... debo de controlar la asistencia por semana de un grupo de gentes, ya pude determinar el rango de fechas para validar la semana, el caso es de que si ejecuto el sp desde el Query Analizer, no hay problema y se ejecuta de maravilla, el problema comienza cuando lo mando llamar desde c# y todo cambia.... no manda los datos que desde el QA regresa!

Que puede ser? alguien tiene una idea de que es lo que pasa? si a alguien le interesa les puedo mandar el código del c# y el del sp

Gracias!
  #2 (permalink)  
Antiguo 04/09/2005, 15:57
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 3 meses
Puntos: 0
Pastea el codigo, porke sin el poco podemos ayudar!!
__________________
Un saludo,
Trucos
Videos
  #3 (permalink)  
Antiguo 04/09/2005, 16:05
 
Fecha de Ingreso: octubre-2004
Mensajes: 142
Antigüedad: 19 años, 6 meses
Puntos: 0
Ok, algunas cosas se que no estan bien pero es la desesperacion la que me ha hecho hacerle de todo
el codigo c#

private void dgMesEmpleado_SelectedIndexChanged(object sender, System.EventArgs e)
{
btnSumaMes.Visible=true;
btnRestaMes.Visible=true;
lblMesElige.Visible=true;
dbManager dbm=new dbManager();
string Asist="exec getFechaInicioFin '"
+ lblFecha.Text +"',"
+ dgMesEmpleado.SelectedItem.Cells[0].Text.ToString(); dbm.FillDataGrid(Asist,dgSemana,"tblSemanaAsistenc ia");
lblAsist.Text=dbm.GetScalar(Asist);
string Ret="exec getAsistenciaCuentaRetardoSemana "
+ lblFecha.Text +","
+ dgMesEmpleado.SelectedItem.Cells[0].Text.ToString();
blRet.Text=dbm.GetScalar(Ret);
int Falta=Convert.ToInt32(6-(Convert.ToInt32(lblAsist.Text)
+Convert.ToInt32(lblRet.Text)));
lblFalta.Text=Convert.ToString(Falta);
dgSemana.Visible=true;
string ini=dbm.Table("tblSemanaAsistencia").Rows[0]["inicio"].ToString();
string fin=dbm.Table("tblSemanaAsistencia").Rows[0]["final"].ToString();
ini=DateTime.Parse(ini).ToString("yyyyMMdd");
fin=DateTime.Parse(fin).ToString("yyyyMMdd");
string getQueryString="exec getAsistenciaCuentaAsisSemana '"
+ini+"','"
+fin+"',"
+dgMesEmpleado.SelectedItem.Cells[0].Text.ToString();
string i=dbm.GetScalar(getQueryString);
dbm.FillDataGrid(getQueryString,dg1,"tblConteo");
}
Este codigo estaba resumido pero es el que estoy usando para las pruebas, ahora el sp general y el especifico

sp General:


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
SET dateformat YMD

/*select @idfecha=CONVERT(VARCHAR(10), @idfechas)*/

select @dia=( SELECT DATEPART(dw,@idfechas) )/*AS DiaSemana*/
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)

select @ret=(select count(atiempo) from vasistencias where atiempo=0 and rfc =@rfc)
select @asis=(select count(atiempo) from vasistencias where atiempo=1 and rfc =@rfc)
select @falta=(Select 6-(@ret+@asis))
Select @asis as Asistencias ,@ret as Retardos,@falta as Faltas

update asissemana
set asistencias=@asis,retardo=@ret, falta=@falta

Select * from asissemana

RETURN

el sp especifico


ALTER procedure getAsistenciaCuentaAsisSemana

@fini char(10),
@ffin char(10),
@rfc char(13)

AS

SET dateformat YMD


declare @asis int

select @asis=(select count(atiempo) from vasistencias where atiempo=1 and rfc =@rfc AND idfecha>=@fini and idfecha<=@ffin )
select @asis as asistencias
update asissemana
set asistencias=@asis
Select * from asissemana

RETURN


Espero me puedan ayudar, ya estoy desesperado!!!!
  #4 (permalink)  
Antiguo 05/09/2005, 14:24
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Pues lo primero, cuando mandes código, indéntalo y enciérralo entre las etiquetas [ code ] ... [ /code ] (sin los espacios)

A simple vista tu código parece bien..., aunque talvez al momento de concatenar los valores se produzca algún fallo, por lo cual sería mejor que trabajes con objetos IDbCommand y definir la propiedad CommandType en StoredProcedure, a su vez trabajar con parámetros...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 05/09/2005, 14:52
 
Fecha de Ingreso: octubre-2004
Mensajes: 142
Antigüedad: 19 años, 6 meses
Puntos: 0
y como empleo objetos IDbCommand y la propiedad CommandType

Tomare en cuenta lo de [ code ], es la primera vez que mando código xknow, lo siento , pero voy aprendiendo. No se como emplear los elementos que mencionas, si me puedes ayudar, te lo superagradecería!!!!!

GRacias a todos!!!
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:59.