Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Problema Al Crear Campos En Tabla
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problema Al Crear Campos En Tabla 
 
Yo puedo crear una tabla mysql haciendo algo como esto:
  
tb = cn.Tables.Add("secciones", "Innodb")  'crear tabla secciones
  tb.Fields.Add("codigo", db.Serial)
  tb.Fields.Add("descripcion", db.string, 140)
  tb.Fields.Add("nuevos", db.Integer)  
  tb.Fields.Add("totales", db.long)
  tb.Fields.Add("bloqueado", db.Boolean)
  tb.Fields.Add("fecha", db.Date)
  tb.PrimaryKey = ["codigo"]
  tb.Fields.Add("FechaW", db.date)  
  tb.Update
  tb.Indexes.Add("codigo", "codigo", TRUE)

El problema viene de que al hacer eso me crea un campo de tipo DATE que solo puede contener la fecha. El caso es que Mysql tiene los tipos de fecha DATE, TIME, DATETIME y TIMESTAMP. Resulta que al describir el campo fecha como db.date está cogiendo cualquiera de ellos. En concreto el que escoge es el tipo DATE.

Pues es que yo quiero DATETIME y no veo como decirle que ponga datetime.

Al consultar en gambasdoc me encuentro que este problema ocurre también con otros tipos. Por ejemplo si yo defino en gambas db.float eso engloba a los float, double, real, numeric, decimal. No veo como elegir cual de ellos es el que quiero. Aquí está la tabla de conversiones de campos que usa gambas

http://gambasdoc.org/help/doc/db-type-mapping

Tiene solución porque Mysql dispone del comando alter table que permite hacer el cambio, pero yo dudo que benoit dejara así un disparate de esa magnitud. Creo que hay algo en gambas que no sé como se hace.y tampoco encuentro información ¿como va a ser igual guardar la fecha que la hora por ejemplo? ¿Como va a  ser igual guardar un float que un double?
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Al Crear Campos En Tabla 
 
Yo suelo utilizar mucho los timestamp y los datetimes (para seguimiento de accesos a la base y de modificaciones). No me he calentado mucho el tarro con Gambas:

Creo las tablas en el propio Mysql con alguna herramienta como phpmyadmin (no me gusta el gestor de gambas) y luego con la instrucción show create table obtengo la estructura. Almaceno ésa información en el programa y la ejecuto con una sentencia conexion.exec(sqlString).

Para cargar ficheros .csv o cosas así, utilizo llamadas SHELL a mysql, que van como una moto de rápidas.

La única pega es que esa sintáxis sólo sirve para MySQL. Con SQLite, driver con el que estoy experimentando últimamente para según qué cosas, utilizo otras estrategias.

Suerte.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Al Crear Campos En Tabla 
 
Eso a mi no me vale. Todas mis aplicaciones tienen la capacidad de crear su propia base de datos completa (tablas, índices, triggers, usuarios, etc) e insertarles algunos datos iniicales si hace falta. Todas las bases de datos tienen siempre al menos tres usuarios. Uno de administración con permisos para modificar la estructura de la base de datos, usuarios, etc, otro con permiso select, insert, update y delete y otro de solo lectura. Cuando se inicia la aplicación si no encuentran su base de datos la crean y generan un settings con los parámetros de conexión para sus usuarios.

Lo que me pasa es muy sorprendente porque he mirado como es que a estas alturas me ocurre esto con un campo de fecha y resulta que en una base de datos, al crearla me pone el campo fecha de tipo date, pero en otras me lo pone de tipo datetime. La cosa es tanto mas sorprendente cuando resulta que son copypastes porque cuando tengo que hacer una tabla en vez de escribir todo hago un copypaste de la anterior, le cambio en nombre de la tabla, los campos y poco mas ¿como es que obtengo resultados distintos de una línea tb.fields.add("fecha",db.date) dependendiendo de que esté en una tabla u otra? ¿Por qué en una es date y en otra es datetime?

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Recorrer Campos De Una Tabla [Solucionado] maikl Bases de Datos 5 Sabado, 31 Octobre 2009, 01:20 Ver último mensaje
maikl
No hay nuevos mensajes Como Hago Para Validar Dos Campos En Una M... jousseph General 12 Martes, 06 Julio 2010, 19:24 Ver último mensaje
jguardon
No hay nuevos mensajes Consulta Mysql Donde Una Tabla Tiene Vario... aratar79 Bases de Datos 21 Domingo, 30 Septiembre 2012, 21:33 Ver último mensaje
aratar79
No hay nuevos mensajes Ejemplo De Mantenimiento De Una Tabla Mant... shordi Aplicaciones/Fragmentos de Código 2 Domingo, 20 Noviembre 2016, 18:56 Ver último mensaje
shordi
 

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


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron