Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
No Puedo Borrar Columna Desde Consola Gambas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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()


Public Sub CampoCosto()
  Dim Resultado As Result
  Dim CampoX As Field
  Dim TablaX As Table
  
  For Each TablaX In FMain.Conectar1.Tables
    If TablaX.Name = "tablataller" Then
      For Each CampoX In TablaX.Fields
        If CampoX.Name = "costo" Then
          If CampoX.Type <> gb.Float Then
            NuevaTablaTaller()
          Endif  
        Endif
      Next
    Endif
  Next

End

 




===================
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/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Diferencias Con SQL Desde Consola.(Solucio... Shell Bases de Datos 2 Miercoles, 25 Abril 2012, 08:03 Ver último mensaje
Shell
No hay nuevos mensajes Enviar Mail Desde La Consola arubioc General 4 Jueves, 17 May 2012, 10:44 Ver último mensaje
arubioc
No hay nuevos mensajes No Me Puedo Modificar Y Tampoco Borrar El ... metalgearxd General 6 Domingo, 03 Febrero 2013, 00:00 Ver último mensaje
Shell
No hay nuevos mensajes Borrar Consola Gambas Desde Código???? v3ctor General 3 Martes, 12 Abril 2016, 09:40 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