 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 02 Feb, 2009 10:56 am Asunto: Firebird: ¿Qué elementos tiene la base de datos? |
|
|
Voy a tratar de explicar mejor la pregunta: ¿Cómo puedo saber si una determinada condición existe ya en una base de datos?
Cunado arranco la aplicación verifico las tablas que hay en la base de datos con un query:
| Código: | SELECT COUNT(RDB$RELATION_NAME) Tabla FROM RDB$RELATIONS WHERE RDB$RELATION_NAME = <Nombre> |
Pero, ¿cómo tendría que se ese query para comprobar si existe un índice primario o externo? Si defino una clave externa con esto:
| Código: | ALTER TABLE Recibos ADD FOREIGN KEY(Situacion) REFERENCES Mensajes(Codigo) |
¿Qué query tengo que hacer luego para comprobar que existe? Cuando lo creo, ya sea por código en tiempo de ejecución o por medio de IBManager, el sistema le asigna un nombre (INTEG_34 en este caso), pero no sé como buscarlo en RDB$RELATIONS. Se me ocurre que podría hacer algo así:
| Código: | Query->SQL->Text = "ALTER TABLE Recibos ADD FOREIGN KEY(Situacion) REFERENCES Mensajes(Codigo)";
try
{
Query->ExecSQL();
}
catch(...)
{
} |
Pero me parece poco elegante. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 05 Feb, 2009 10:44 am Asunto: |
|
|
Aclarada la duda. Hurgando con IBManager he descubierto en las tablas del sistema la guarda las definiciones de los generadores, entre otras cosas supongo, y es RDB$PROCEDURES y la que almacena las definiciones de los generadores que es RDB$GENERATORS. Basta por lo tanto buscar en ellas las definiciones y dependencias y eliminarlas. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|