Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con Query y Fechas (https://www.clubdelphi.com/foros/showthread.php?t=3349)

anitra_cattivo 03-09-2003 17:05:16

Problema con Query y Fechas
 
Tengo el siguiente problema

Primero detallo algo de las tablas involucradas:

Tengo dos tablas.
Clientes.dbf y movim.dbf

En movim.dbf hay campos como:
Cod:_cli
Cod_doc
Fecha y otros.

Lo que trato de hacer es una consulta SQL para luego pasarla al QuickReport
En movimientos esta lo que necesito reportar de Facturas Emitidas

La Consulta que hago desde Delphi es la siguiente:

...
{ PREPARAMOS LOS QUERYS ANTES DE LANZAR AL REPORTADOR }
{ preparando Query con Clientes ... }
dm.Q_CLIENTES.Close;
dm.Q_CLIENTES.Prepare;
dm.Q_CLIENTES.SQL.Clear;
{ *** }
dm.Q_CLIENTES.SQL.Add('select distinct c.codigo, c.nombre from clientes c, movim m where c.codigo=m.cod_cli and m.fecha<=:pFechaFin and m.fecha>=:pFechaIni');
{ *** }
dm.Q_CLIENTES.ParamByName('pFechaIni').AsDate:=DateTimePicker1.Date;
dm.Q_CLIENTES.ParamByName('pFechaFin').AsDate:=DateTimePicker2.Date;
{ *** }
...

La idea de la consulta es dejar solo los clientes (clientes.dbf) que tienen movimiento (movim.dbf) (se les facturo) en un rango de fechas.

Cuando genero el Reporte, no me sale la hoja en blanco. En el rango del 01/01/2003 al 07/01/2003 (dd/mm/aaaa).

En el DataBase DeskTop aplico la consulta e igualmente. Al revisar me percate que en el DataBase D. Debía poner la fecha en formato mm/dd/aaaa
Al cambiarlo SALIO! Lo que deseo ver. Pero ahora en Delphi era mi problema
Al poner el valor de fachas como constantes en formato mm/dd/aaaa en Delphi (en lugar de los parámetros pFechaIni y pFechaFin) el reporte también salió. Pero no debe ser constante obviamente.

Como ven, uso parámetros pFechaIni y pFechaFin que se cargan con los datos de los DateTimePicker y cuando digitan la información (parametrizan el reporte que desean ver) lo hacen en dd/mm/aaaa.

Necesito hacer que la consulta me tome la fecha en formato dd/mm/aaaa

Muchas Gracias

mosorio 03-09-2003 19:15:42

Hola!
Con respecto a la consulta, si la esta construyendo mediante código, creo que seria más optimo hacerla de esta forma:
Cita:

Creas una Constante Ej: SQL y asignas la senttencia asi:

const
SQL = 'select distinct c.codigo, c.nombre from clientes c, movim m where c.codigo=m.cod_cli and m.fecha<= %s and m.fecha>= %s';

Y al asignarla en el Q_CLIENTES

dm.Q_CLIENTES.SQL.Add(Format(SQL, [QuotedStr(FechaIni), QuotedStr(FechaFin)]));

Asi le pasas la sentencia completa incluyendo los rangos antes de ejecutarla.

Esta es la forma como hago para ejecutar QRY desde código si llevan parámetros y con un componente QRY general.

Espero te ayude en algo


La franja horaria es GMT +2. Ahora son las 03:26:11.

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