![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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.
|
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
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 |
#4
|
|||
|
|||
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.
|
#5
|
||||
|
||||
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. |
#6
|
|||
|
|||
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 |
![]() |
|
|
![]() |
||||
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 |
![]() |
|