|
Página 1 de 1
|
No Puedo Borrar Columna Desde Consola Gambas
Autor |
Mensaje |
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
No Puedo Borrar Columna Desde Consola Gambas
buenas,
ALTER TABLE "tablataller" DROP COLUMN "costo"
se supone que con este comando borro la columna costo en la tabla tablataller pero no funciona.
alguien sabe porque?
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#1 Sabado, 14 Noviembre 2015, 16:56 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: No Puedo Borrar Columna Desde Consola Gambas
también probé esto y no funciona
ALTER TABLE tablataller DROP costo
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#2 Sabado, 14 Noviembre 2015, 17:08 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: No Puedo Borrar Columna Desde Consola Gambas
Supongo que hablas de SQLite. La compatibilidad de SQLite con DDL no es completa. Es necesario crear una tabla nueva, pasar los datos a ésta y borrar la antigua. Algo así:
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;
Por supuesto, también lo puedes hacer con código gambas.
Saludos
=================== No podemos regresar
|
#3 Sabado, 14 Noviembre 2015, 17:34 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: No Puedo Borrar Columna Desde Consola Gambas
lo que intento hacer es cambiar un campo llamado costo que es de tipo texto, a tipo float (cambiar el tipo de dato en el campo costo, de texto a float)
no puedo cambiar el tipo porque borra todos los datos
entonces la idea era crear un campo costo1 copiar los datos de costo a costo1 y borrar costo.
y renombrar costo1 a costo
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
última edición por v3ctor el Sabado, 14 Noviembre 2015, 18:57; editado 1 vez
|
#4 Sabado, 14 Noviembre 2015, 18:57 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: No Puedo Borrar Columna Desde Consola Gambas
a ver que le parece esto sensei shordi?
Public Sub NuevaTablaTaller()
Dim sql As String
Dim Campos, Campos1 As String
sql = "Create TABLE tablataller1(id INTEGER Not Null PRIMARY KEY AUTOINCREMENT,"
sql &= "ingreso DATETIME,nombre VARCHAR(64),celular VARCHAR(16),telefono VARCHAR(16),"
sql &= "costo float(6,2) Not Null Default '0',"
sql &= "correo VARCHAR(64),domicilio VARCHAR(255),tipo VARCHAR(32),marca VARCHAR(32),modelo VARCHAR(32),serie VARCHAR(32),"
sql &= "datos TEXT,entrega DATETIME,"
sql &= "pagado VARCHAR(8) Not Null Default 'No',enTaller VARCHAR(8) Not Null Default 'Si',aCasa VARCHAR(8) Not Null Default 'No',"
sql &= "clientenuevo VARCHAR(8) Not Null Default 'No',pendiente VARCHAR(8) Not Null Default 'No',clave VARCHAR(32), rutaimagen text)"
Try FMain.Conectar1.Exec(sql)
If Error Then
Print Error.Text
Else
Campos = "id,ingreso,nombre,celular,telefono,costo,correo,domicilio,tipo,marca,modelo,serie,datos,entrega,"
Campos &= "pagado,enTaller,aCasa,clientenuevo,pendiente,clave,rutaimagen"
FMain.Conectar1.Exec("insert into tablataller1 (" & Campos & ") select " & Campos & " from tablataller ")
Wait 0.1
FMain.Conectar1.Exec("drop table tablataller")
Wait 0.1
FMain.Conectar1.Exec("alter table tablataller1 rename to tablataller")
Endif
End
al parecer funciona bien
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#5 Sabado, 14 Noviembre 2015, 19:50 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: No Puedo Borrar Columna Desde Consola Gambas
rutina que chequea si el campo costo no es de tipo float llama a la rutina nuevatablataller()
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#6 Sabado, 14 Noviembre 2015, 19:53 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: No Puedo Borrar Columna Desde Consola Gambas
Ok. Con eso no tendrás prolemas, creo.
Sin embargo, en lugar de recorrer todas las tablas y campos ¿Por qué no usas en la rutina la búsqueda directa?
Algo como:
if FMain.Conectar1.Tables["tablataller"].fields["costo"].type <> gb.float then
etc. etc.
endif
Ganarías en velocidad, creo.
=================== No podemos regresar
|
#7 Sabado, 14 Noviembre 2015, 21:16 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: No Puedo Borrar Columna Desde Consola Gambas
gracias, excelente aporte, ni idea que se podía hacer así, que lejos se esta de conocer todo el potencial de gambas
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#8 Domingo, 15 Noviembre 2015, 12:14 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|