![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Con IBX y FIBPlus me funcionan igual las fechas
Hola
![]() Estuve haciendo pruebas con respecto a tu problema. Estoy usando dialecto 3 con Firebird 1.5.3, Delphi 7, FIBPlus 6.3 (NO la trial), IBX 7.06, el tipo de dato para la fecha DATE. Al pasar la fecha con separadores '/' o con '-' lo hice de la forma mm/dd/yyyy ó mm-dd-yyyy Al pasar la fecha con separadores '.' lo hice de la forma dd.mm.yyyy De acuerdo a esto si quiero pasar el 1 de Febrero de 2006 tengo que poner 02/01/2006 ó 01.02.2006 De esta manera NO obtuve NINGUN ERROR, usando los 2 componentes de acceso a base de datos (IBX y FIBPlus). Al decir ningun error me refiero a que no obtenia errores de conversion y a que me devolvia el registros con la fecha (correcta) que yo le indicaba. Con AMBOS componentes obtuve ERROR al pasar la fecha en esta forma 30/04/2006 ó sea que en ningun caso me acepto la fecha 30/04/2006 COMO VALIDA; pero tu dices que con IBX si te funciona? Que version de Firebird, IBX, FibPlus, usas? Estas usando el tipo de dato DATE o el TIMESTAMP? PD.- Cuando dices que lo tienes configurado como dd/mm/yyyy, supongo que te refieres a la propiedad DefaulFormats del TpFIBDataSet. Te dire que esta propiedad SOLO sirve para indicar la forma en que se mostrara la fecha y no tiene nada que ver con los parametros que le pases al TpFIBDataSet |
|
#2
|
|||
|
|||
|
Más datos
Saludos, añado más información al respecto.
Los FIBPlus son los 6.4 Los Mercury son la ultima RC2 Los de Interbase, son los que vienen en Delphi 7 por defecto. dialect 3 y la ISO Española Tipo de dato es DATE En los tres casos, el formato de fecha que utilizo es dd/mm/yyyy, no uso dd.mm.yyyy. Si es cierto lo del formato en el dataset, es como se muestran los datos al usuario.No tiene nada que ver. El Firebird que uso es el 2.0(no sé hasta que punto tendrá algo que ver) Y en los tres casos todo ha sucedido sin cambiar nada, usando las mismas sentencias SQL, que como indiqué más arriba no son nada del otro mundo, lo único que modifico son los componentes que uso, y las sentencias SQL las copio y pego de un componente a otro. Pruebo 21/12/2003 y en: FIBplus error(toma 21 como mes) Mercury ok, y opero sin problemas. fecha 21 de diciembre de 2003 Paleta Interbase Delphi ok, sin problemas. fecha 21 de diciembre de 2003 No sé, yo por lo menos no doy con el problema. Es cierto que el problema es extraño y no consigo solucionarlo... Si alguien da con el problema y lo comenta aquí sería bueno para todos. Yo ya he decidido seguir con los Mercury que son los de Interbase mejorados y gratis. Un saludo... |
|
#3
|
|||
|
|||
|
Hay algo que no estas haciendo bien. Usando parametros de la forma correcta, como el ejemplo de Lepe:
query1.parambyname('fin').AsDate := datetimepicker2.date; No hay nunca la posibilidad de error. La fecha no se pasa en ningun formato de cadena, sea mm/dd/YY o dd/mm/YY, se pasa en forma de variable datetime nativa de delphi (Fijarse en el AsDate ), que no es mas que un numero en punto flotante, que indica el numero de dias que han pasado desde el año 1900. Eso significa que no puede haber nunca ningun problema de interpretacion ni de formato: Es decir la fecha de hoy en una variable de fecha de delphi tiene el valor: 38920 Que significa simplemente que han pasado 38920 dias desde el 31 de diciembre de 1899. Y este valor es el que se le asigna al parametro de la query, despues el componente ya se encargara de convertir ese numero al formato que sea y que necesite la base de datos. Lo que implica que no puede haber nunca ningun tipo de error en los formatos. Da la impresion de que a pesar de usar parametros, en lugar de usar .AsDate para asignarlos se estuviese usando .AsString y pasando la interpretacion en forma de cadena en lugar de la variable Date nativa de delphi que al ser un simple numero no puede dar lugar a confusion. Saludos |
|
#4
|
|||
|
|||
|
Vas a tener razón
Me temo que tienes razón, no había caído en el detalle. En vez de usar .asdate
he usado .value y he hecho: ....parameter.value:=datetostr(datetimerpicker.date); debería haber hecho: ....parameter.asdate:=datetimerpicker.date; He probado y ahora si funciona y no dá error. OLE!!!! Tienes razón, lo estaba pasando como cadena... Gracias.... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Guardar null (nolo) en un campo fecha en Firebird | cahosoft | Conexión con bases de datos | 3 | 19-04-2014 09:54:17 |
| Error al hacer insert (campo fecha) en firebird con fibplus | Acanol | Firebird e Interbase | 7 | 15-06-2006 09:05:07 |
| Problema con la Fecha | ramonibk | Varios | 1 | 28-02-2005 19:30:29 |
| Formato fecha en Firebird 1.5.1 | mosorio | Firebird e Interbase | 1 | 05-11-2004 17:23:46 |
| Formato fecha en FireBird | HombreSigma | Firebird e Interbase | 2 | 22-06-2003 22:18:00 |
|