Ver Mensaje Individual
  #1  
Antiguo 03-03-2011
Rowerto Rowerto is offline
Miembro
 
Registrado: abr 2010
Posts: 20
Reputación: 0
Rowerto Va por buen camino
Fechas con distintos formatos en una DBGrid

Hola, delphines XD
Me dirijo de nuevo a ustedes para resolver mis dudas sobre algo que me estoy haciendo para vivir mejor en mi trabajo.
Para empezar decir que como no supe muy bien donde colocar esta duda, me he ido a lo "mas generico" que he encontrado. Y es que al usar componentes ADO podria haberla puesto en la parte de conexion a BdDs, o al usar sentencias SQL no se si tendra la culpa y deberia haberlo puesto en su propia seccion... Bueno, al lio que me lio.
Trabajamos con una BdD Access (version 97, cosas de la empresa) y dentro de ella hay una tabla que se llama "Movimientos" donde estan todos los registros de movimientos de centros. Yo solo quiero poder hacer una consulta de los movimientos de un dia en concreto, algo que aparentemente es facil y sencillo se ha convertido en cuatro dias "malgastados" en revisar codigo y mirar foros (este, sobretodo) para aclararme algo las ideas, pero ni asi.
Tengo un form con :
- Una query llamada "ADOQDatos" al que le paso la sentencia SQL por codigo, ya que necesito primero darle la fecha que quiero consultar. La
sentencia final es
Código SQL [-]
SELECT F_Mov, B1, B2, B3, Ord_Eje_Inc, Ord_Noeje, Ord_Bien, Observac 
FROM Movimientos 
WHERE F_Mov = #'+ datetostr(MCalendario.Date) +'# ORDER BY B1'

- Un DataSource ("DataSource1") cuyo DataSet es el "ADOQDatos".
- Un DBGrid para poner la informacion cuyo DataSource es el "DataSource1".
- Y un TMonthCalendar ("MCalendario") que uso para elegir la fecha de consulta.
Para lanzar todo el proceso tengo el siguiente codigo (eso es todo, no tengo mas) en el evento del doble-click
Código Delphi [-]
  
  ADOQDatos.Close;
  ADOQDatos.SQL.Clear;
  ADOQDatos.SQL.Add('SELECT F_Mov, B1, B2, B3, Ord_Eje_Inc, Ord_Noeje, Ord_Bien, Observac FROM MOV_SCADA WHERE F_Mov = #'
                                 + datetostr(MCalendario.Date) +'# ORDER BY B1');
  ADOQDatos.Open;
  ADOQDatos.ExecSQL;

Todo parece funcionar bien, hasta que me doy cuenta que sabiendo que tengo registros de todos los dias del mes de Enero y Febrero resulta que cuando pico en el calendario los dias del 3 al 12 (ambos incluidos y tanto en Enero como en Febrero) no aparece nada. Pero si por ejemplo quiero ver las del 04/01/11 tengo que ir al 01/04/11, como si fuese fecha de formato americano (y lo mismo en Febrero).
otras cosas que he notado es que los registros de los dias 1 y 2 aparecen bien en ambos meses pero al visualizarse en la grid aparecen con formato americano, mientras los posteriores al dia 13 se visualizan en formato europeo.
Fui a la propia base de datos pero en la declaracion de F_Mov no hay mas que tipo "Fecha/Hora" sin mascara de entrada ni formato establecido. Ni que decir tiene que al ser una BdDs de empresa esta capada con usuario y contraseña (que no dan ni pa'tras, yo de hecho estoy trabajando con una copia local que realizo con el programa de Visual Basic que gestiona esa propia base) y no puedo crear consultas ni cosas parecidas para apoyarme en ellas. Pero al ver los datos de la tabla y ordenarlos, las fechas vienen correctas desde ella, es decir se guardan con formato 'dd/mm/aa'.
He encontrado algunos hilos en este foro sobre cosas parecidas como
http://www.clubdelphi.com/foros/showthread.php?t=44376
o este otro
http://www.clubdelphi.com/foros/showthread.php?t=55928
pero solo me han servido para liarme la cabeza aun mas.
He de suponer que estoy haciendo algo mal con los formatos de alguno de los componentes pero no logro detectar en cual ni donde y ahora mismo estoy bloqueado, perdido y no se que puedo hacer, por lo que cualquier ayuda o indicacion sera de agradecer.
Gracias de antemano, espero haberme explicado con claridad y perdon por el morrogo que acabo de soltar.
PD: Si algun admin. cree que esto debe estar en otra seccion, por favor que lo mueva sin dudar.

Última edición por rgstuamigo fecha: 03-03-2011 a las 17:24:24. Razón: Estética
Responder Con Cita