FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cambiar estructura a una tabla?
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Cambiar estructura a una tabla?
Posted: Fri Dec 02, 2022 05:58 PM

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

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Cambiar estructura a una tabla?
Posted: Fri Dec 02, 2022 09:44 PM
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 (fw): Select all Collapse
//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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Cambiar estructura a una tabla?
Posted: Sat Dec 03, 2022 12:31 AM

César:

Muchas gracias, le voy a tirar un ojo.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Cambiar estructura a una tabla?
Posted: Sat Dec 03, 2022 01:13 PM
Amigo yo lo hago de la siguiente manera:
Code (fw): Select all Collapse
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
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Cambiar estructura a una tabla?
Posted: Sat Dec 03, 2022 05:12 PM

Leandro y amigos:

Muchas gracias por los ejemplos.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion