Trabajando con Fechas en Gambas

PUBLIC FUNCTION formatDateBD(fec AS Date) AS String
   DIM dat AS String
   dat = Year(fec) / Month(fec) / Day(fec)
   RETURN dat
END

Las fechas en gambas pueden ser trabajadas con Date.
El cual se estructura de la siguiente forma:

Date = Date ( Year , Month , Day [ , Hours , Minutes , Seconds ] ) AS Date

Si quisieramos trabajar con una fecha obtenida de una base de datos y colocarla en un objeto calendar y en una caja de texto podriamos hacerlo de la siguiente forma:

Dim fec as Date
fec = resGuias[fecha]
GuiaRemision.Calendario.Year = Year(fec)
GuiaRemision.Calendario.Month = Month(fec)
GuiaRemision.Calendario.Day = Day(fec)
txtFecha.Text = Calendario.Day / Calendario.Month / Calendario.Year

Si queremos guardar una fecha obtenida en nuestro programa en la base de datos podemos usar la siguiente funcion.

PUBLIC FUNCTION formatDateBD(fec AS Date) AS String
	DIM dat AS String
	dat = Year(fec) / Month(fec) / Day(fec)
	RETURN dat
END

Y finalmente esto es lo que guardo en la base de datos donde el dato es de tipo Fecha segun el gestor de datos de Gambas.

Segun lo que estoy viendo esta no es la manera mas optima de trabajar pero funciona, asi que si alguien conoce alguna mejor, por favor espero me pueda ayudar.

Saludos

Anuncios

El operador IF en gambas

Bueno pues resulta que estaba queriendo utilizar el condicional IF en mi querido gambas y como estoy acostumbrado a la sintaxis de lenguajes como java y c# quería utilizar el operador a la manera tradicional de esos lenguajes:

IF condicion1 AND condicion2 THEN
'Codigo a ejecutar al ser verdadera la condicion
END IF

Y me daba un error al evaluar la condicion2 la cual dependia directamente de la condicion1, despues de tanto romperme la cabeza para averiguar el origen del error, se me ocurrio consultar la documentacion de gambas sobre el operador IF y resulta que la sintaxis correcta es la siguiente.

IF condicion1 AND IF condicion2 THEN
'Codigo a ejecutar al ser verdadera la condicion
END IF

En caso de que querramos usar el OR tenemos el siguiente

IF condicion1 OR IF condicion2 THEN
'Codigo a ejecutar al ser verdadera la condicion
END IF

Recordemos que la condicion se evalua de izquierda a derecha, y tambien que no se puede mezclar las palabras clave AND IF y OR IF en una misma linea.

Aqui termino este pequeño post el cual nacio de un error minimo pero que a veces puede pasar desapercibido, la moraleja es que siempre debemos revisar la documentacion del lenguaje, por mucho que sepamos usar otros lenguajes.

Saludos.
“Hasta la victoria siempre”