Page 1 of 1

Cambiar estructura a una tabla?

PostPosted: Fri Dec 02, 2022 5:58 pm
by Armando
Estimados foreros:

Necesito hacer una función que desde dentro de mi aplicación, en Harbour, ADO y FW, poder
modificar la estructura de una tabla de MySql, agregando campo nuevos, eliminando campos,
cambiando el nombre, tamaño y tipo de campo, etc etc. poder cambiar el nombre de la tabla,
todo esto respetando el contenido.

Con objeto de no inventar el agua caliente, alguien que lo haya hecho y pueda darme una idea?,
será bien agradecida.

Saludos

Re: Cambiar estructura a una tabla?

PostPosted: Fri Dec 02, 2022 9:44 pm
by cmsoft
Armando, no uso ADO, pero intuyo que debe ser muy similar a Dolphin o la clase nativa

Tendrías que ejecutar una sentencia SQL para alterar la tabla
Ejemplo:
Code: Select all  Expand view

//Para cambiar campos de nombre y agregar campos
oServer:Execute("ALTER TABLE `test`.`tempor`  CHANGE `codigo` `codigo_anterior` BIGINT(13) DEFAULT 0  NOT NULL,   ADD COLUMN `nuevocampo` INT(10) NOT NULL AFTER `logico`")
//Para renombrar la tabla
oServer:Execute('RENAME TABLE `test`.`tempor` TO `test`.`tempor_nue`")

Mientras tenga permiso el usuario con que accedes a la base, no tendrás problemas

Re: Cambiar estructura a una tabla?

PostPosted: Sat Dec 03, 2022 12:31 am
by Armando
César:

Muchas gracias, le voy a tirar un ojo.

Saludos

Re: Cambiar estructura a una tabla?

PostPosted: Sat Dec 03, 2022 1:13 pm
by leandro
Amigo yo lo hago de la siguiente manera:
Code: Select all  Expand view

cQry :=     "SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '"+mibasedatos+"'"+;
            " AND TABLE_NAME = '"+mitabla+"' AND COLUMN_NAME = 'll_resolu'"
oRsPag := FW_OPENRECORDSET(oCnx,cQry,adLockOptimistic,adOpenKeyset)  
nRegistros := oRsPag:RecordCount()
oRsPag:close() 
If nRegistros==0
    cQuery := "ALTER TABLE "+mitabla+" ADD ll_resolu VARCHAR(250) DEFAULT '' AFTER ll_fcfeop"
    TRY
        oCnx:Execute(cQuery)
        lBien := .T.
    CATCH oError
        FW_ShowAdoError(oCnx)
        lBien := .F.
    END
endif
 

Re: Cambiar estructura a una tabla?

PostPosted: Sat Dec 03, 2022 5:12 pm
by Armando
Leandro y amigos:

Muchas gracias por los ejemplos.

Saludos