Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 22/09/16, 11:23:36
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
Renombrar tabla en SQlite

Hay manera de renombrar una tabla de SQlite sin perder los datos que tiene dentro?
Responder Con Cita
Gracias de parte de:


  #2  
Viejo 22/09/16, 13:41:56
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
ALTER TABLE antiguo RENAME TO nuevo

O eso dicen en SO:
http://stackoverflow.com/questions/4...-in-sqlite-3-0
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 22/09/16, 14:17:08
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
No lo he probado, pero lo que dice mocelet debe funcionar.

Tendrás que incrementar la versión de tu base de datos, y en el onUpgrade del SQLiteOpenHelper ejecutar ese comando.
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 22/09/16, 15:12:25
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
y en el onUpgrade del SQLiteOpenHelper ejecutar ese comando.
Comprobando la oldVersion y la newVersion para que no se ejecute las próximas veces que actualices la app y requiera un cambio en base de datos
(Es el método en el que el switch cascading tiene todo el sentido del mundo)

Código:
switch(oldVersion){
  case 1:
    transicionV1aV2(db);
  case 2:
    transicionV2aV3(db);
  case 3:
    transicionV3aV4(db);
}
Responder Con Cita
  #5  
Viejo 22/09/16, 16:23:47
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por Dexafree Ver Mensaje
Es el método en el que el switch cascading tiene todo el sentido del mundo
¡Desde luego! Y debe ser prácticamente el único caso, en Swift y Kotlin entre otros lenguajes han fulminado esa característica.
Responder Con Cita
  #6  
Viejo 22/09/16, 17:54:25
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
Y debe ser prácticamente el único caso
En mi caso solo lo he utilizado en compiladores y en tema de upgrade de versiones


Cita:
Originalmente Escrito por mocelet Ver Mensaje
en Swift y Kotlin entre otros lenguajes han fulminado esa característica.
Al menos en el caso de swift, tienes el operador fallthrough, donde tu defines especificamente los casos que hacen cascading

Código:
switch(valor) {
case 1:
    cosa()
    fallthrough
case 2:
    cosa2()
default:
    cosa3()
}
Responder Con Cita
  #7  
Viejo 22/09/16, 18:56:57
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
Gracias compañeros por orientarme, y cada vez que renombras una tabla hay que incrementar la version de la BD?
Responder Con Cita
  #8  
Viejo 22/09/16, 19:48:16
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por kaiser75 Ver Mensaje
Gracias compañeros por orientarme, y cada vez que renombras una tabla hay que incrementar la version de la BD?
No necesariamente, pero raro sería que no. El incrementar la versión de la BD es para que al instalar una nueva versión de la app sepas que la base de datos que hay tiene la estructura antigua y puedas hacer los cambios necesarios. Idem si el usuario por lo que sea recuperó un backup antiguo de los datos.

Tienes que tener en cuenta que los usuarios de la app han podido crear la base de datos con una versión anterior, no siempre va a ser nueva.

Dicho esto, solo se me ocurren dos casos raros en que no tengas que incrementar la versión y quieras cambiar el nombre de una tabla:
a) Que en algún sitio de la base de datos tengas guardado el nombre nuevo que le has puesto a la tabla. En ese caso da igual la versión porque el nombre realmente lo sacas de la propia base de datos. No te encontrarías con que versiones antiguas de la app esperan que la tabla se llame "pepe" y las nuevas "jose".
b) Que estés haciendo un editor de SQLite
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 14:32:13 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007