Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Valor por defecto campo firebird (https://www.clubdelphi.com/foros/showthread.php?t=66175)

jaimeh 05-02-2010 11:41:16

Valor por defecto campo firebird
 
Hola a todos


Como podría saber el valor por defecto de un campo de una tabla
firebird. No me refiero al tipo de campo.

No se si con delphi hay alguna funcion o propiedad de un TField
que me lo diga. No he encontrado ninguna.

O habría que hacerlo con SQL.

Muchas gracias a todos

Neftali [Germán.Estévez] 05-02-2010 12:45:01

En SQL normalmente hay forma de definirlo para la tabla (si la creas con una herramienta visual también se debe poder).

Código SQL [-]
  ...
  add columna1 CHAR (11) DEFAULT 'Valor'

jafera 05-02-2010 12:52:51

Yo lo que hago es asignar este valor predeterminado en el onnewrecord de la tabla

Josep

Casimiro Notevi 05-02-2010 13:12:58

Prueba accediendo a las tablas del sistema:

Código:

select RDB$DEFAULT_SOURCE
from RDB$RELATION_FIELDS
where RDB$FIELD_NAME='CIUDAD'    // <--- el campo
and RDB$RELATION_NAME='TBCALLES'  // <--  la tabla

Esto te devuelve el valor por defecto que tenga.

jaimeh 05-02-2010 14:03:29

Muchas gracias por responderme Casimiro

He escrito este código en delphi

Código Delphi [-]

                    qryDestino.SQL.Text :=
                      'select RDB$DEFAULT_SOURCE ' +
                      'from RDB$RELATION_FIELDS ' +
                      'where RDB$FIELD_NAME= ' + fldSource.FieldName +
                      //el campo
                      ' and RDB$RELATION_NAME= '+ listSource[j];
                      // <--  la tabla


                    qryDestino.Open;

Como tengo que hacerlo para recoger el valor que me daría

Muchas gracias

jaimeh 05-02-2010 14:42:09

Me da error Sql

Código Delphi [-]
                   qryOrigen.SQL.Text :=
                      'select RDB$DEFAULT_SOURCE ' +
                      'from RDB$RELATION_FIELDS ' +
                      'where RDB$FIELD_NAME= ' + fldSource.FieldName +
                      //el campo
                      ' and RDB$RELATION_NAME= '+ listSource[j];
                      // <--  la tabla


                    qryOrigen.Open;


Me dice campo desconocido y si existe en la tabla origen
Las tablas estan en diferentes bases de datos

Muchas gracias

Caro 05-02-2010 14:54:56

Cita:

Empezado por jaimeh (Mensaje 353020)
Como tengo que hacerlo para recoger el valor que me daría

Hola jaimeh, para recuperar puedes asignarle un alias.

Código Delphi [-]
   qryDestino.SQL.Text := 'select RDB$DEFAULT_SOURCE As Campo' +
   .................................
   qryDestino.Open;


 
   Showmessage(qryDestino.FieldByName('Campo').AsString);

Saluditos

Caro 05-02-2010 15:08:21

Cita:

Empezado por jaimeh (Mensaje 353027)
Me dice campo desconocido y si existe en la tabla origen
Las tablas estan en diferentes bases de datos

Hola de nuevo, te falta ponerle las comillas.

Código Delphi [-]
   qryOrigen.SQL.Text := 'select RDB$DEFAULT_SOURCE As Campo' +
                      'from RDB$RELATION_FIELDS ' +
                      'where RDB$FIELD_NAME= ' + QuotedStr(fldSource.FieldName) +
                      ' and RDB$RELATION_NAME= '+ QuotedStr(listSource[j]);
   qryOrigen.Open;

Saluditos

Neftali [Germán.Estévez] 05-02-2010 15:52:25

Cita:

Empezado por jaimeh (Mensaje 352987)
Como podría saber el valor por defecto de un campo de una tabla
firebird. No me refiero al tipo de campo.

Perdón.
Está claro que no leí bien la pregunta... :o

Casimiro Notevi 05-02-2010 16:19:40

Cita:

Empezado por Neftali (Mensaje 353037)
Perdón. Está claro que no leí bien la pregunta... :o

Es que hoy es viernes y ya estamos con la mente nublada, qué bien, fin de semana: hacer limpieza de la casa, hacer las compras, lavar la ropa acumulada, reparar la lámpara que se estropeó, llevar el coche al taller, llevar el perro al veterinario, con las últimas lluvias los cristales de las ventanas están opacos de suciedad... vaya, ya llegó el lunes :D

Casimiro Notevi 05-02-2010 16:22:06

Cita:

Empezado por Caro (Mensaje 353028)
Hola jaimeh, para recuperar puedes asignarle un alias.
qryDestino.SQL.Text := 'select RDB$DEFAULT_SOURCE ' +
.................................
qryDestino.Open;
Showmessage(qryDestino.FieldByName('Campo').AsString);

Saluditos


También puede hacerse sin alias:

Showmessage(qryDestino.Fields[0].AsString);

Neftali [Germán.Estévez] 05-02-2010 16:26:24

Cita:

Empezado por Casimiro Notevi (Mensaje 353048)
....qué bien, fin de semana: hacer limpieza de la casa, hacer las compras, lavar la ropa acumulada, reparar la lámpara que se estropeó, llevar el coche al taller, llevar el perro al veterinario, con las últimas lluvias los cristales de las ventanas están opacos de suciedad...

Cómo me suena eso...

:):):o:o:(:(

jaimeh 05-02-2010 17:06:13

Gracias a todos por responderme

Con el último apunte de Caro funciona perfectamente.

Me imagino que de la misma manera mas o menos
se podría averiguar la description de un campo.

Y también se podrían grabar el valor por defecto y el valor
de description.

Podrías indicarme algo respecto a esto último

De todas formas mucha gracias.

Caro 05-02-2010 17:57:46

Cita:

Empezado por Casimiro Notevi (Mensaje 353049)
También puede hacerse sin alias:

Showmessage(qryDestino.Fields[0].AsString);

;)

Cita:

Empezado por jaimeh (Mensaje 353060)
Me imagino que de la misma manera mas o menos
se podría averiguar la description de un campo.

Hola de nuevo, de esa misma forma puedes obtener la descripción,

Código SQL [-]
select RDB$DESCRIPTION
from RDB$RELATION_FIELDS
...............................

Has este select para que puedas ver los campos que tienes en RDB$RELATION_FIELDS, así ves lo que te interesa.

Código SQL [-]
select *
from RDB$RELATION_FIELDS
where  RDB$RELATION_NAME='RDB$FIELDS'

Cita:

Empezado por jaimeh (Mensaje 353060)
Y también se podrían grabar el valor por defecto y el valor
de description.

Puedes hacer un Update para cambiar dichos valores:

Código SQL [-]
update RDB$RELATION_FIELDS Set RDB$DESCRIPTION='descripcion para el campo'
where RDB$FIELD_NAME='CAMPO'
and RDB$RELATION_NAME='TABLA'

Saluditos

Caro 05-02-2010 18:05:00

Cita:

Empezado por Neftali (Mensaje 353037)
Perdón.
Está claro que no leí bien la pregunta... :o

Cita:

Empezado por Casimiro Notevi (Mensaje 353048)
Es que hoy es viernes y ya estamos con la mente nublada,......................

Yo creo que Neftali ayer festejo compadres y aún sigue con la cabecita dolida ;).

Por cierto, felidades a todos los compadres ;) :D.

Saluditos

Neftali [Germán.Estévez] 05-02-2010 18:18:58

Cita:

Empezado por Caro (Mensaje 353076)
Yo creo que Neftali ayer festejo compadres y aún sigue con la cabecita dolida.

:eek::eek::eek::eek::eek:

¿Cómo lo sabes Caro?

Ayer hubo partidito y cervecita y cervecita y cervercita. ;);):D:D:D

Caro 05-02-2010 18:36:52

Cita:

Empezado por Neftali (Mensaje 353080)
¿Cómo lo sabes Caro?

Ayer hubo partidito y cervecita y cervecita y cervercita. ;);):D:D:D

Es que soy clarividente amiguito :D:D:D.


La verdad, ayer en mi país se festejo compadres y cuando salí a cenar vi a muchas muchas personas (de hecho la mayoría hombres) festejando compadres y solo bromeando se ocurrio que tu también habías festejado :D.

Saluditos

Casimiro Notevi 05-02-2010 18:44:18

Por ahí tenéis unos festejos que no se hacen aquí: la de los 15 años, de los 18 años... y ahora descubro la de los compadres :eek:

jaimeh 06-02-2010 09:42:07

Muchas gracias a Caro y a todos los demás,

Ha quedado perfectamente entendido.

Saludos


La franja horaria es GMT +2. Ahora son las 07:05:23.

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