| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 03 Abr, 2008 6:29 pm Asunto: Firebird ¿Existe un campo en una tabla? |
|
|
Dicho de otra forma: ¿Se puede hacer una select a algún sitio para conocer si un campo ya está creado en una tabla? Algo parecido a esto que se usa para saber si hay una tabla en la abse de datos.
| Código: | select count(RDB$RELATION_NAME) from RDB$RELATIONS where RDB$RELATION_NAME = 'ANIMALS' |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
juanma Cmdr

Registrado: 17 Nov 2005Mensajes: 127Ubicación: Almeria - España
|
Publicado: Vie 04 Abr, 2008 11:12 am Asunto: |
|
|
Hola Angel,
Siempre puedes recorer los campos de un dataset o query, algo como
| Código: |
lSi = false;
ATb->Open();
for (int n = 0; n <ATb>FieldCount; n++) {
if (ATb->Fields->Fields[n]->FullName=="NombreCampo") {
lSi=true;
break;
}
}
|
Saludos,
Juanma |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Jue 10 Abr, 2008 2:00 am Asunto: |
|
|
Hice esto hace algunos meses y me funciona bien con mysql;
Por los nombres nemotecnicos que use para las variables, no creo que requiera explicacion.
Si alguien tiene duda estoy a sus ordenes.
| Código: |
bool ExisteCampo(TQuery *qry,AnsiString sTabla,AnsiString sNombreCampo)
{
bool ret=false;
try {
qry->Close();
qry->SQL->Clear();
qry->SQL->Add("SELECT * FROM "+sTabla+" LIMIT 1");
qry->Open();
sNombreCampo=UpperCase(sNombreCampo);
for(int i = 0; i <qry>FieldCount; i++)
if(UpperCase(qry->Fields->Fields[i]->FieldName)==sNombreCampo)
ret=true;
}
catch (...) {}
return ret ;
}
|
_________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Dom 06 Ene, 2013 9:11 am Asunto: |
|
|
A ver. Después de todo este tiempo encontré la respuesta a mi pregunta. Es esta:
| Código: | SELECT COUNT(*)
FROM RDB$RELATION_FIELDS
WHERE RDB$RELATION_NAME = 'TABLA'
AND RDB$FIELD_NAME = 'CAMPO' |
Los nombres de la tabla y del campo deben ir en mayúsculas. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|