Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2007
niñotaliban niñotaliban is offline
Miembro
 
Registrado: nov 2005
Posts: 13
Poder: 0
niñotaliban Va por buen camino
Añadir columna a dbrid, que muestre sentencia calculada, en runtime

Ufff no me acaba de convencer el título que he puesto, pero no sabia como expresarme en pocas palabras jeje.

Mejor os pongo en situación:

Tengo un dbgrid enlazado a una tabla, en esta, ademas de otros campos tengo un identificador foraneo (es decir de otra tabla).

El dbgrid me muestra todos los campos muy bien, pero querria mostrar, en vez del identificador foraneo, el resultado de una sentencia contra la tabla del que proviene, es decir:

en vez de '1' : el identificador
quiero mostrar 'pepito' : un campo que corresponde al registro con el identificador '1'

La cosa la tengo bastante clara si no fuera porque lo quiero hacer en tiempo de ejecución, el tablename de la tabla se asigna en tiempo de ejecución dependiendo de que tabla quiero mostrar, por lo tanto deberia crear los tfields que necesitara en tiempo de ejecucion y luego jugar con el oncalcfields, pero no me aclaro y creo que deberia haber una manera más sencilla.

Bueno espero que me podais dar algún consegillo, almenos pa donde tengo que tirar jejeje.

gracias de antemano
Responder Con Cita
  #2  
Antiguo 28-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
En el siguiente Post encontraras como crear el campo en tiempo de ejecución:

http://www.clubdelphi.com/foros/show...24&postcount=4 y para asignarle el evento al dataset deberas crear pun procedure que reciba los mismos parametros del evento y decirle algo como por ejemplo:

Código Delphi [-]
 
Ttable1.OnCalcFields := EventoDeCalculo;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 28-02-2007
niñotaliban niñotaliban is offline
Miembro
 
Registrado: nov 2005
Posts: 13
Poder: 0
niñotaliban Va por buen camino
Grácias jhonny, ya he conseguido crear el field, no exactamente como indicas en tu mensaje ya que queria crear un campo calculado pero me has dado la pista que queria jejeje.

Ahora la cosa está en que si abro la tabla antes de crear el field me salta el error de que no se puede crear el field si la tabla está abierta, cosa normal porque en diseño ya te lo dice ya, pero si la abro después solo me muestra el field que he creado y los demás no.

Y me pregunto:

Tengo que añadir todos los fields, con su configuracion y tal, a manija (bueno por codigo) antes de abrir la tabla??

No puedo simplemente añadirlo a los que ya reconoce automáticamente??


Grácias por la pronta y eficaz respuesta este foro es un recurso buenísimo, hasta ahora solo he tenido que preguntar esplicitamente un par de veces y la primera fué una tonteria de novato y despistao jeje, pero con solo consultar los hilos que hay he resuelto un montón dudas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Añadir columna calculada a dbgrid miquellg Conexión con bases de datos 4 28-07-2006 00:58:45
Conocer estado DBRID Coco_jac Varios 0 07-12-2005 19:18:17
Error al añadir columna JorgeBec SQL 1 21-02-2004 03:51:44
SQL que arroja 20 registros que muestre 10 cahosoft Firebird e Interbase 7 19-02-2004 19:44:29
Columna calculada en base a otra columna calculada Al González Firebird e Interbase 1 10-02-2004 00:51:57


La franja horaria es GMT +2. Ahora son las 19:55:49.


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
Copyright 1996-2007 Club Delphi