Page 1 of 1

Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 5:00 pm
by carito
Hola a todos:

Necesito una ayuda, como puedo detectar si existe o no un campo en una BD mysql ?

Lo que pasa es que tengo una funcion que imprime, y debo saber con anterioridad,
si ya existe un campo, para poder imprimir sus datos, pero tengo sistemas antiguos,
donde no tengo la certeza, si existen ya _ y el modulo de impresion, se
cae o no imprime nada.

He utilizado esta forma, pero no se si es la correcta o existe algo mejor, ahi
requiero la ayuda.

If oRs:Fieldpos( 'direccion' ) <> 0
? 'imprimo el dato'
EndIf

Tambien probe con

If FieldPos( oRs:direccion ) <> 0

EndIf

Pero no me reconoce el campo.

Utilizo TDolphin con mysql y harbour 3.2
Saludos,

Re: Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 6:16 pm
by MGA
SHOW COLUMNS FROM clientes where field like "%codigo%";

Re: Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 7:00 pm
by carito
Gracias por responder, pero no me sirve tu idea, a lo mejor no me entendiste.

Requiero saber si en una tabla cualquire, realizada con mysql , existe o no un campo ?

Como averiguo esa informacion ?

Re: Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 7:08 pm
by CARLOS ATUNCAR
cMsg :="SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE()AND COLUMN_NAME='actaconformidad_mod' AND TABLE_NAME='formularios' "
cQry := oServer:Query( cMsg )
If cQry:lastrec()=0
cMsg := "ALTER TABLE formularios "
cMsg += "ADD COLUMN actaconformidad_mod VARCHAR(80) NULL AFTER actaconformidad"
oServer:Execute( cMsg )
EndIf
cQry:end()


Lo uso asi para comprobar si no existe la columna y agregarla

Re: Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 7:50 pm
by carito
Carlos, muchas gracias.

Es una muy buena idea, no se me habria ocurrido tomarlo asi, es un poco mas largo, pero creo que funcionara.

Yo pensaba que existe algun comando o funcion para detectar un campo.
Saludos,

Re: Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 10:46 pm
by cmsoft
Con Dolphin podría ser asi:

Code: Select all

if (ascan(oRs:aColumns,'direccion') > 0) 
   // Existe

 

Re: Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 10:53 pm
by carito
MGA, gracias tambien por la informacion, ahora probando, entendi lo que me decias, sorry :oops:

Re: Detectar si existe campo en tabla MySQL

Posted: Tue Jan 05, 2021 10:54 pm
by carito
Gracias Cesar, esa forma no la conocia, esta excelente, pues utilizo el mismo TDolphin.