Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Muchas gracias por tu respuesta, es cierto ya resolví el problema que se me daba con la exception en el tipo de conversión, pero por otra parte no entiendo lo que me explicas, pués el metodo close y open lo uso a modo de refrescamiento de manera tal que si alguién cambia el rengo de fechas y hace click nuevamente se muestren los resultados actualizados para el nuevo rango de fechas. Por otra parte si coemnto la línea dond está el método open no se muestra en el dbgrid el conjunto de resultados, aunque si muestra en el edit el importe total, pero excluyendo una factura que según expliqué aparece comprendida dentro de ese rango, por otra parte si comento la línea del método execproc entonces me genera un error en la línea de la asignación del la propiedad text del edit al parámetro de salida. Te repito muchas gracias por tu respuesta me ha servido de mucho.
Responder Con Cita
  #2  
Antiguo 17-10-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Oks, aclaro un poco el punto.


Cuando tienes un Procedimiento almacenado que solo devolverá datos a través de sus parámetros definidos como OuPut, no necesitas invocar a open,
unicamente basta con ExecProc.

Si tu procedimiento almacenado devuelve uno o varios recorsets, entonces si debes utilizar open.

Ahora que si tu procedimiento almacenado hace una combinación de los casos anteriores entonces si debes usar primero ExecProc para cargar los parámetros de salida y despúes el Open para cargar el dataset.

Suerte
Responder Con Cita
  #3  
Antiguo 17-10-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hilo movido de "conexión con bases de datos" a "MS SQL Server", por tratarse de un asunto específico de este motor.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 17-10-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
poliburro, recuerda que son dos procedimientos almacenados, uno con dos parámetros de entrada, que son los denominados @FechaRecepcion y @FechaRecepcion1, esto lo uso para que me devuelva las facturas pendientes de pago en ese rango de fechas, el otro procedimiento tiene 3 parámetros dos de entrada y uno de salida, los de entrada son @Fecha y @Fecha1 y el de salida @ImporteTotal, si te fijas en el código verás que hay un ADOSPPendientesPago que es un Ado Stored Procedure que hace alusión al primer procedimiento y un ADOSPImporteTotal que hace alusión al otro procedimiento almacenado con los tres parámetros, este último procedimiento lo cree con la finalidad de obtener la suma total de las facturas pendientes de pago según el rango de fechas, si te fijas te darás cuenta que ambos procedimientos en el código delphi yo igualo los parámetros de salida a los valores de la propiedad date de los dos datetimepicker, por eso es que combino losm métodos open para obtener el conjunto de records del primer procedimiento almacenado y el execproc para asignar el valor del parámetro de salida al edit. Pero fijate así como está me funciona la única dificultad es que te repito hay una factura sin pagar con fecha 10/04/2006 que no la muestra en tiempo de ejecución. Yo pongo del 10/04/2006 a 16/06/2006 y me muestra las demas menos esa, sin embargo si pongo un rango de fechas que incluya una el 09/04/2006 a 16/06/2006 si la muestra, y tu viste que los rangos están bien escritos en los procedimientos almacenados. Hermano disculpa tanta molestia, a lo mejor te parezco un latoso, pero esres el qu has contestado a mi inquietud y por eso te respondo. Realmente te pido mi disculpas y gracias nuevamente por dedicar tiempo a a este tema.
Responder Con Cita
  #5  
Antiguo 17-10-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Oks, no te preocupes, y como te decia en el primer post, solo debes tratar los nulos cuando estas devolviendo valores a través de los parámetros.

Mucha suerte amigo.
Responder Con Cita
  #6  
Antiguo 21-11-2007
angelbem angelbem is offline
Registrado
 
Registrado: jun 2007
Posts: 4
Poder: 0
angelbem Va por buen camino
hola efelix

Bueno, particularmente no e trabajado mucho con sql, pero por lo que veo en tu codigo, tu parametros son de tipo datetime, y le mandas una fecha de tipo date.

el problema que pasa muchas veces, es por el tipo de dato, date a datetime, en la hora de la comparacion de eso dos tipos de datos pueden variar, como ocurre en tu caso, que no toma la factura de la misma fecha del rango que le colocaste.

bueno pienso que si verificas que los datos que estas comparando son del mismo tipo entonces te arrojaria los datos correctos, puedes darle un format a uno de los dos campos, ya sea el que le mandas por parametro o en la consulta del procedimiento.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
procedimiento almacenado kejos MS SQL Server 3 02-09-2008 17:39:22
Procedimiento almacenado LucianoRey MS SQL Server 2 23-08-2005 00:37:06
Procedimiento Almacenado scooterjgm Conexión con bases de datos 5 18-01-2005 18:21:32
Procedimiento almacenado y Ado LucianoRey MS SQL Server 11 06-07-2004 22:55:23
procedimiento almacenado haron Firebird e Interbase 2 29-09-2003 01:09:56


La franja horaria es GMT +2. Ahora son las 12:56:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi