Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-02-2024
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Gregorio Cíber Va por buen camino
Firebird y CURRENT_TIME

Hola, amigos.


A ver si alguien tiene la amabilidad de 'iluminarme' sobre el asunto que planteo a continuación. Trataré de ser sintético.


1.- Módulo de pedidos de una aplicación Delphi ejecutándose desde distintos puestos de red y atacando la misma BD en un servidor. No hay problema con la fecha y hora. Siempre aparecen los datos correctos. En este caso dichos datos se toman de los componentes de pantalla (TJvDBDateEdit y TJvDBDateTimePcker)

2.- Módulo de pedidos de otra aplicación similar, aunque más 'pequeñita', ejecutándose en modo terminal y atacando la misma BD. Aunque no siempre pero sí con relativa frecuencia, la fecha y la hora de una serie de pedidos es la misma. Por ejemplo: fecha 04/02/2024 hora 19:34:12. Esto ocurre en pedidos que esté realizando un mismo usuario o varios.
3.- Pensado que el problema podría venir de los componentes, al hacer INSERT en la tabla puse FECHA = CURRENT_DATE y HORA = CURRENT_TIME. No obstante el resultado no ha cambiado.


Según el manual de usuario de Firebird, textualmente pone:
CURRENT_DATE returns the current server date.
CURRENT_TIME returns the current server time.


Entonces, y aquí va la pregunta, ¿cómo es posible que se guarde una fecha y hora concreta en varios pedidos hechos en momentos distintos, ya que es imposible que un usuario introduzca varios pedidos en la misma hora, minuto y segundo.


La BD es Firebird 3.0


De antemano, muchas gracias.
Responder Con Cita
  #2  
Antiguo 05-02-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Imposible responder con certeza si no vemos el código, ni cuándo toma la fecha/hora, si al iniciar un pedido, si al guardarlo, si lo toma algúmn evento del dataset, si lo hace la propia base de datos en un trigger, etc.
Lo ideal es que la fecha/hora se tome automáticamente al guardar el pedido en un trigger en la BD, en el beforeinsert, por ejemplo.
Responder Con Cita
  #3  
Antiguo 05-02-2024
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Gregorio Cíber Va por buen camino
Gracias Casimiro Notevi por responder.


A ver. No puedo hacer FECHA = CURRENT_DATE y HORA = CURRENT_TIME en un disparador de la BD porque entonces esta asignación se haría siempre que el trigger saltara y, como dije anteriormente, a la BD se accede desde dos aplicaciones distintas. En una los campos FECHA y HORA son establecidos por el usuario y en la otra, no. Por eso lo hago en el componente (TpFIBDataSet) cuando se hace INSERT.
Lo extraño es que esto ocurre de forma esporádica, por ejemplo hoy ha funcionado perfectamente, y siempre cuando se trabaja en modo terminal, como puede ser un comercial desde una table.


En fin, seguiré machacando.
Responder Con Cita
  #4  
Antiguo 06-02-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Quieres decir que el usuario pone la fecha y hora que le parece?
Responder Con Cita
  #5  
Antiguo 06-02-2024
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Gregorio Cíber Va por buen camino
Sí, Casimiro.
Los comerciales pasan los pedidos diariamente, pero puede ocurrir que, por circunstancias, esto no sea así, de manera que realizan los pedidos según el orden de fechas en que se los han hecho a ellos los clientes y, para orden interno del servicio, la hora. Es así como funcionan. Por eso es que decía no es posible hacer la asignación FECHA y HORA en un trigger de la tabla correspondiente de la BD.
Gracias por tu interés.
Responder Con Cita
  #6  
Antiguo 06-02-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues si se guarda la misma fecha/hora en varios pedidos, y lo lee de un componente en pantalla, es porque no se ha refrescado ese componente y tiene la misma fecha/hora que el pedido anterior.
Responder Con Cita
  #7  
Antiguo 06-02-2024
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Gregorio Cíber Va por buen camino
Pues voy a asegurarme que esto no ocurre.
Gracias otra vez.
Responder Con Cita
Respuesta



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
Migración Firebird 2.5 a Firebird 4. Error Unknown SQL Data type (32752). Jose99mir Firebird e Interbase 5 10-11-2023 10:07:15
Correr aplicacion delphi firebird 2.1 en servidor firebird 3 gmontes Firebird e Interbase 5 08-06-2020 20:58:53
base de datos creada con firebird 2.5 abrirla con firebird anteriores anubis Firebird e Interbase 5 20-11-2013 21:35:32
Firebird 1.5.3 Error:No puede ejecutarse Firebird Guardian xq ya hay una instancia Delphius Firebird e Interbase 5 26-01-2007 10:19:20
Problemas Firebird Super Server 1.5 con RFunc Firebird v 1.0 Prophoenix Firebird e Interbase 1 09-03-2004 11:40:48


La franja horaria es GMT +2. Ahora son las 18:34:16.


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