Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   dbExpress + Constraint (https://www.clubdelphi.com/foros/showthread.php?t=51652)

totote 22-12-2007 16:11:29

dbExpress + Constraint
 
Buenas, Hay alguna forma de saber que campos son PK o FK en una tabla desde dbExpress, por ejempo para otener las tablas de una base de datos y sus campos es:

Código PHP:

// Obtener Tablas
DataModule.SQLConnection.GetTableNames(ListBox1.Items,False);
// Obtener Campos
Tabla:= ListBox1.Items[ListBox1.ItemIndex];
DataModule.SQLConnection.GetFieldNames(Tabla,ListBox2.Items); 

Lo que necesito saber ahora es como se cuales campos son PK o FK. Saludos

Al González 22-12-2007 18:59:22

RDB$Relation_Constraints
 
¡Hola a todos!

Totote: No especificas qué base de datos utilizas, ni la versión de Delphi / dbExpress, pero si por casualidad estuvieras trabajando con Firebird / InterBase, con esta consulta SQL puedes obtener los nombres de los campos de una tabla que constituyen llaves foráneas (FKs) —una de las dos cosas que buscas—.
Código SQL [-]
Select ISe.RDB$Field_Name From RDB$Index_Segments ISe

Inner Join RDB$Relation_Constraints RC
On RC.RDB$Index_Name = ISe.RDB$Index_Name

Where (RC.RDB$Relation_Name = :Tabla) And
(RC.RDB$Constraint_Type = 'FOREIGN KEY')
Mirando el contenido de la tabla RDB$Relation_Constraints, podrás descubrir fácilmente cómo obtener entonces los campos que son llaves primarias.

Confírmanos qué base de datos utilizas. En general, no dejes de retroalimentar el hilo. Gracias.

Un abrazo foráneo.

Al González. :)

totote 22-12-2007 23:41:49

Ups!!! fue sin querer, Si la version de delphi es 2007, no se que versión de dbExpress será, y el motor de base de datos es firebird es 2.0, ahora pruebo esto que me estás diciendo, hay algun sitio para más información, nunca se me ocurrió buscar por el lado del motor, pero ahora lo haré tambien. Gracias por la ayuda Al


La franja horaria es GMT +2. Ahora son las 14:58:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi