Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2007
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
tipo date

Muy buenas:

Alguien sabe como puedo configurar en MySql para que el formato de Fecha sea distinto, supongo que seria solo cambiar la variable de fecha a 'dd/mm/yyyy' en vez de 'yyyy-mm-dd'

muchas gracias
Responder Con Cita
  #2  
Antiguo 12-11-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, mysql por defecto trae el formato de fecha yyyy-MM-dd, por mas que intentes insertar en otros formatos automaticamente mysql lo pone en su formato por defecto que es yyyy-MM-dd, ahora en cuanto a mostrar los datos en cierto formato, es posible de la siguiente manera:

Código SQL [-]
SELECT *, DATEFORMAT(campo_fecha, '%d/%m/%Y') AS Fecha_str  FROM tbl_algo

espero que te ayude.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 12-11-2007
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
Muy bien

Gracias,

mi problema no es la forma en que enseña los datos, el problema es que cuando quiero grabar el campo de un query a la base de datos al hacer applyupdates me da error en ese campo.

Estoy usando delphi y cada tabla que tiene campo de date al hacer el applyupdate me da el error.

Sabrias tu como solucionar ese problema desde delphi?

Gracias
Responder Con Cita
  #4  
Antiguo 12-11-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Pues, podrias postear el error que te da?, porque mysql no admite formatos dd/MM/yyyy, sino, yyyy-MM-dd.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 13-11-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

No es tanto que admita o no admita, sino que el formato "universal" de fechas en bases de datos cliente-servidor es el ISO: aaaa-mm-dd (año-mes-día).

Y es el recomendable para cuando se quiere expresar de manera literal una fecha en una sentencia SQL decente.

Una forma de no lidiar con este tipo de problemas es hacer que el componente consulta (query) tenga parámetros para simplemente asignarles las fechas al estilo "ParamByName ('Fecha').AsDate := MiFechaTDate;".

Si se quiere expresar alguna fecha en particular de forma literal, lo mejor será hacerlo siempre bajo el formato ISO mencionado.

Saludos.

Al González.
Responder Con Cita
  #6  
Antiguo 13-11-2007
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
Tipo Date

Hola:

Antes que nada deciros que conozco otras bases de datos y este formato esta lejos de ser el mas estandar de todos, normalmente tienen el formato ingles que es mm/dd/yyyy, pero bueno, ese no es el punto.

El problema es en DELPHI y es el siguiente: cuando declaro un TQuery para hacer referencia a una tabla y su correspondiente UpdateSQL, si grabo las transacciones con la propiedad RequestLive a True no me da problemas. Cuando RequestLive esta a false y cachepupdates a True es cuando me da problemas, por alguna razon al hacer el applyupdates me da el error de "...OPERATION NOT APPLICABLE..." ese es el problema. Con TTables tambien funciona todo bien. Como mi aplicacion ya esta terminada 100% y lo unico que haremos es migrar entonces no quiero cambiar la metodologia que se usa en el sistema.

En definitivas, no puedo hacer un applyupdates en tablas que tengan campos fechas (si estos campos son modificados).

Muchas gracias
Responder Con Cita
  #7  
Antiguo 13-11-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola!

Bases de datos cliente-servidor, y claro, la mayoría acepta también el formato mm/dd/aaaa, pero no por ello rechazan el estándar ISO, el cual, repito, es preferible usar. Lamento contradecirte pero no está nada lejos de ser el estándar, Firebird y SQL Server lo admiten perfectamente y estoy seguro que la mayoría de las bases de datos cliente-servidor también.

Aclarado ese punto, creo que no nos has dicho qué componentes estás utilizando para el acceso a los datos. Tal vez en ellos, o en la forma de emplearlos esté el problema. ¿Podrías mostrarnos algo de tu código?

Saludos.

Al González.
Responder Con Cita
  #8  
Antiguo 14-11-2007
jSr jSr is offline
Miembro
 
Registrado: nov 2007
Posts: 16
Poder: 0
jSr Va por buen camino
Problema

Al: no sabia que estaban estandarizando lo de la fecha, pero lo que te dije, en los años que llevo en esto y en las bd que toque eran otras las caracteristicas de fecha. tendre que mantenerme mas al dia.

Por este tipo de cosas es bueno entrar a los foros, jejeje

bueno mira, te describo el problema que lo puse tambien en otro topico en conexiones.

Ojo, el error da solo cuando se graba con cacheupdates en delphi, cuando el query es requeslive no pasa eso y cuando se usan ttables tampoco, es con tquerys con la propiedad cachedupdates =true.

Tengo un DM donde declaro una DataBase conectado a un alias en el ODBC. Aparentemente esta todo bien.

Ademas cuento con un tQuery con una select sencilla sobre una de las tablas, este query esta conectado a un updateSQL que contiene las sentencias de Insert/modify/delete.

En el mismo DM esta definida una funcion que recibe como argumento un TDataSet:

Código Delphi [-]
procedure  Tdm.Grabar(DataSet: TDataSet);
begin
inherited;
with (DataSet As  TQuery) do begin
if not Database.InTransaction  then
Database.StartTransaction;
try
ApplyUpdates;
database.Commit;
except
database.Rollback;
raise;
end;
CommitUpdates;
end;
end;

Cuando el tQuery tiene la propiedad requestLive a True (el codigo de arriba comentado), los cambios son grabados correctamente en la BD.

Pero cuando utilizo el codigo de arriba, y configuro en el TQuery la propiedad cachepUpdates a TRUE; y la propiedad requestLive a FALSE, al ejecutar la Linea "ApplyUpdates" me da un error de "...EDBEngineError with message 'Operation not applicable'..."

Con las TTables tampoco da error, pero no se por donde atacar el problema.

he probado todo lo que la experiencia me ha dicho que puede ser pero igual se me escapa algun detalle. Sospecho que pueden ser dos cosas:

1- La configuracion de ODBC
2- La configuracion del Servidor de MySQL Server.

Alguno tiene alguna idea o tuvo el mismo problema?

El Problema real son los campos de tipo DATE en MySql que tienen definido en una variable el formato 'YYYY-MM-DD', la solucion probablemente sea cambiar el formato de esa variable en MySql de manera que Delphi pueda aceptar esos datos.

por otro lado el delphi no me permite introducir otro formato de fecha que no sea 'dd/mm/yyyy' y ahi es donde me da el Error 'Operation not applicable'



PD: No quisiera utilizar otros componentes que los mencionados arriba, porque la aplicacion esta ya terminada y solamente queremos migrarla de Paradox.

Muchas Gracias

Última edición por dec fecha: 14-11-2007 a las 09:39:30.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problemas de agrupamientos con campos tipo date GustavoCruz Conexión con bases de datos 5 11-12-2006 18:36:57
Manejo de datos tipo DATE en RAVE ANG4L Impresión 1 07-05-2006 11:26:42
Locate a una tipo date o time RONPABLO Firebird e Interbase 6 29-11-2004 10:49:04
Inserción de valores de tipo date Isaac MySQL 6 03-03-2004 03:02:47
campo tipo date Giniromero Firebird e Interbase 21 13-08-2003 14:47:53


La franja horaria es GMT +2. Ahora son las 15:00:03.


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