Cambiar estructura a una tabla?

Cambiar estructura a una tabla?

Postby Armando » Fri Dec 02, 2022 5: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
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cambiar estructura a una tabla?

Postby cmsoft » Fri Dec 02, 2022 9: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: Select all  Expand view  RUN

//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
User avatar
cmsoft
 
Posts: 1290
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Cambiar estructura a una tabla?

Postby Armando » 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
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cambiar estructura a una tabla?

Postby leandro » Sat Dec 03, 2022 1:13 pm

Amigo yo lo hago de la siguiente manera:
Code: Select all  Expand view  RUN

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Cambiar estructura a una tabla?

Postby Armando » Sat Dec 03, 2022 5: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
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: acuellar, Google [Bot] and 41 guests