Obtener getdate en cuerpo de la funcion..
Publicado por marcelo (16 intervenciones) el 26/05/2005 13:13:25
Gracias a Liliana!!!...que me dio la idea de como encararlo...
El caso es el siguiente:
En un cliente java, tengo un campo XX en un formulario.
Este campo (XX) en formulario al abrirse, debe cargarse con un valor por defecto.
Este valor depende de Usuario y la fecha en la que se está ejecutando.
Entonces en el motor, hay un funcion llamada f_xx().
Téngase en cuenta la secuencia de pasos:
1) Se abre el formulario:
2) Se debe llenar el campo con el valor por defecto devuelto por la f_xx() en el motor.
Es decir que no hay ningún otro proceso ejecutándose. Solo la función.
En el cuerpo de la función se necesita entonces:
a) El nombre de usuario
b) La fecha actual.
Como sabrán no se puede hacer @Fecha = getdate(), dentro del cuerpo de la función, ya que
las funciones solo son determinísticas.
No se puede hacer tampoco un UPDATE, DELETE ni INSERT.
Así que les paso como lo resolví.
a) Se crea una vista con el siguiente código:
CREATE VIEW dbo.vw_getdate
(Fecha)
AS
SELECT Fecha = GetDate()
GO
b) En el cuerpo de la función:
CREATE FUNCTION XX()
AS
........
DECLARE @FechaNow DATETIME
-----Aqui está disponible la fecha, en el cuerpo de una función
SELECT @FechaNow = Fecha FROM vw_getdate
......
GO
Espero que les sirva!!!!!!!!!
Suerte...
El caso es el siguiente:
En un cliente java, tengo un campo XX en un formulario.
Este campo (XX) en formulario al abrirse, debe cargarse con un valor por defecto.
Este valor depende de Usuario y la fecha en la que se está ejecutando.
Entonces en el motor, hay un funcion llamada f_xx().
Téngase en cuenta la secuencia de pasos:
1) Se abre el formulario:
2) Se debe llenar el campo con el valor por defecto devuelto por la f_xx() en el motor.
Es decir que no hay ningún otro proceso ejecutándose. Solo la función.
En el cuerpo de la función se necesita entonces:
a) El nombre de usuario
b) La fecha actual.
Como sabrán no se puede hacer @Fecha = getdate(), dentro del cuerpo de la función, ya que
las funciones solo son determinísticas.
No se puede hacer tampoco un UPDATE, DELETE ni INSERT.
Así que les paso como lo resolví.
a) Se crea una vista con el siguiente código:
CREATE VIEW dbo.vw_getdate
(Fecha)
AS
SELECT Fecha = GetDate()
GO
b) En el cuerpo de la función:
CREATE FUNCTION XX()
AS
........
DECLARE @FechaNow DATETIME
-----Aqui está disponible la fecha, en el cuerpo de una función
SELECT @FechaNow = Fecha FROM vw_getdate
......
GO
Espero que les sirva!!!!!!!!!
Suerte...
Valora esta pregunta
0