Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

PREGUNTA BASE DE DATOS

PREGUNTA BASE DE DATOS
Artículo
Responder citando    Descargar mensaje  
Mensaje PREGUNTA BASE DE DATOS 
 
hola y disculpen mi ignorancia
hace poco tiempo que se que existe gambas
y me ha lamado bastante la atencion
me he puesto a curiosear
y actualmente estoy conociendo la parte de base de datos
el proble es que cuando mando a guardar una fecha de un textbox o un valuebox
a la base de datos esta me cambia la fecha
incluso intente con esto
date (now)
para guardar la fecha actual del sistema y me cambia los valores de la fecha

alguien sabe por que sucede esto??
me puede dar una posible solucion??

de antemano gracias



 
Dervins - Ver perfil del usuario Enviar mensaje privado  
Dervins [ Domingo, 30 Enero 2011, 14:19 ]
 


PREGUNTA BASE DE DATOS
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: PREGUNTA BASE DE DATOS 
 
hola.

Yo también tuve ese problema.

Mira esto:

http://foro.gambas-es.org/viewtopic.php?f=3&t=969



 
pittusa - Ver perfil del usuario Enviar mensaje privado  
pittusa [ Domingo, 30 Enero 2011, 14:59 ]
Responder citando    Descargar mensaje  
Mensaje Re: PREGUNTA BASE DE DATOS 
 
creo que plantee mal la pregunta disculpen de nuevo

el problema no es como se muestre en en un combox
el problema es como se guarda en la base de datos
por ejemplo
yo guardo
22/01/1980
y en la base de datos se guarda
22/01/1902
32/02/1906
y otras formas mas, es decir, la misma base de datos me cambia los valores



 
Dervins - Ver perfil del usuario Enviar mensaje privado  
Dervins [ Domingo, 30 Enero 2011, 15:11 ]
Responder citando    Descargar mensaje  
Mensaje Re: PREGUNTA BASE DE DATOS 
 
No puedes hacer nada. Así es como trabajan todas las bases de datos para campos definidos como date.

Aunque si declaras un campo como TEXT (no sé que motor usas, MYSQL o SQLITE?) y antes de guardar la fecha la formateas como desees, tendrás tu fecha como esperas.

Mi consejo es que lo hagas como explica ahtonio en el post que indicó pitussa. Evitarás muchos errores, sobre todo con el tema de la localización, que es la forma de mostrar las fechas según en qué idioma y también a la hora de ordenar o buscar entre fechas.

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Domingo, 30 Enero 2011, 15:35 ]
Responder citando    Descargar mensaje  
Mensaje Re: PREGUNTA BASE DE DATOS 
 
estoy usando sqlite3

hice lo que dice en el post, pero ahora el formato es dd/mm/yy
y quisera que lo guardara dd/mm/yyyy
es esto posible??



 
Dervins - Ver perfil del usuario Enviar mensaje privado  
Dervins [ Domingo, 30 Enero 2011, 15:50 ]
Responder citando    Descargar mensaje  
Mensaje Re: PREGUNTA BASE DE DATOS 
 
¿Puedes postear el código que estás usando?

Sin saber lo que haces es difícil ayudarte.



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Domingo, 30 Enero 2011, 16:36 ]
Responder citando    Descargar mensaje  
Mensaje Re: PREGUNTA BASE DE DATOS 
 
Conexion.conex.Exec("INSERT INTO ALUMNOS(NOMBRE,NOMBRE2,APELLIDO1,APELLIDO2,LUGARNAC,SEXO,SANGRE,NO_MED,PRECAUCIONES, FECHANAC, EDAD)Values('" & NomAlum.Text & "', '" & Nom2Alum.Text & "','" & ApeAlum.Text & "','" & Ape2Alum.Text & "', '" & LNacio.Text & "','" & sexo & "', '" & GruSanAlum.Text & "', '" & MedProhi.Text & "', '" & Precauciones.Text & "', '" & Format(VFecha.Value, "yyyy/mm/dd") & "', " & EdadAlum.Text & ")")

'este lo uso para guardar en la BD
'por ahora solo estoy guardando

'el codigo de la fecha es:

PUBLIC FUNCTION DevuelveFecha() AS Date
  Fecha.ShowModal
  RETURN Var.IncluirFecha
  END

PUBLIC SUB ToolButton1_Click()
  VFecha.Value = DevuelveFecha()
  EdadAlum.Text = DateDiff(VFecha.Value, Date(Now), gb.Year)

END

'asi guardo la fecha en el valuebox
 




 
última edición por Dervins el Domingo, 30 Enero 2011, 16:49; editado 1 vez 
Dervins - Ver perfil del usuario Enviar mensaje privado  
Dervins [ Domingo, 30 Enero 2011, 16:43 ]
Responder citando    Descargar mensaje  
Mensaje Re: PREGUNTA BASE DE DATOS 
 
Hola de nuevo al temita de las fechas.

Tengo una tabla definida asi:
  IF NOT hCon.Tables.Exist("pedido") THEN
    hTable = hCon.Tables.Add("pedido")
    WITH hTable.Fields
      .Add("idped", db.Serial)
      .Add("fecped", db.Date)
      .Add("cliped", db.Integer,, 1)    'R-> Cliente
      .Add("proped", db.Integer,, 1)    'R-> Producto
      .Add("cteped", db.Float,, 0)
      .Add("pteped", db.Float,, 0)
      .Add("litped", db.Integer,, 0)
      .Add("pvpped", db.Float,, 0)
      .Add("cmsped", db.Float,, 0)
      .Add("ivaped", db.Float,, 18.00)
      .Add("fraped", db.Integer,, 0)    '-> Nº factura en que se incluye
      .Add("obsped", db.String, 115)
    END WITH
    hTable.PrimaryKey = ["idped"]
    hTable.Update
  ENDIF
 


El campo fecped (fecha pedido) si lo miras con SQLITE Databrowser, veras que es un campo DATETIME que se guarda en formato YYYY-MM-DD HH-MM-SS o algo asi (en la ayuda de sqlite3 puedes consultarlo). Para nuestro efectos vamos considerar unicamente YYYY-MM-AA OK?

Cuando queremos grabar un pedido en el campo fecha, el cual aceptaremos desde un ValueBox con Type = date, yo lo que hago es

          rst["fecped"] = vbfec.Value

Si fuese un textbox lo haría asi:

          rst["fecped"] = CDate(txtfec.text)

y de este/os modos cuando consultes la base de datos lo veras como 2010-05-12 00:00:00 . Yo no intentaría cambiar esto porque no me molesta y el espacio puede considerarse despreciable en principio.

Cuando lo quiero ver en un ColumnView o GridView en formato de 2 dig. para el año o de 4, emplea la función format directamente y no intento investigar como lo hace por defecto. Si lo haces así y el formato cambia por un casual, tu aplicación seguirá funcionando.
Por cierto en el ValueBox se te mostrará la fecha como 01/02/2011, pero si introduces 01/02/11 el te hará la conversión y la hará correctamente a 01/02/2011, por eso uso ValueBox te ahorra muchas validaciones.

Espero te ayude

Un saludo Antonio
xxx



 
ahtonio - Ver perfil del usuario Enviar mensaje privado  
ahtonio [ Miercoles, 02 Febrero 2011, 10:28 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron