Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2010
gandalf_uy gandalf_uy is offline
Miembro
 
Registrado: ene 2005
Posts: 39
Poder: 0
gandalf_uy Va por buen camino
Red face Cómo saber el tipo de componente asociado a una DBGrid?

Buenas, estoy necesitando saber lo siguiente: Tengo una DBGrid, que esta apunta a un DataSource, que a su vez puede estar siendo referenciado por una tabla o por un query.

Yo lo que necesito saber es que tipo de componente es el que está mostrando el grid, si el query o la tabla.

DBGrid1.DataSource.DataSet.Name me devuelve el nombre del componente pero no de que tipo es.

A su vez, si hago DBGrid1.DataSource.DataSet.ClassName no me muestra nada, y en tiempo de ejecución, al inspeccionar el DataSet, me dice que en la propiedad NestedDataSetClass del DataSet me indica el tipo de componente que necesito, pero si quiero acceder a ella mediante código me da el error de "Cannot access protected symbol DataSet.NestedDataSetClass"

Cómo puedo acceder a ese dato de manera fácil y sencilla?

Gracias
Responder Con Cita
  #2  
Antiguo 10-06-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Vaya... hubo un error al envíar el mensaje...

Moderadores, por favor si pueden borrar este mensaje...


Gracias...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #3  
Antiguo 10-06-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Deberías poder hacer algo como esto:

Código Delphi [-]
if not Assigned(DBGrid1.DataSource) and not Assigned(DBGrid1.DataSource.DataSet) then
  ShowMessage('No tiene asignado un DataSet')
else
  if DBGrid1.DataSource.DataSet.ClassType is TTable then
    ShowMessage('El DataSet es un TTable')
  else
    if DBGrid1.DataSource.DataSet.ClassType is TQuery then
      ShowMessage('El DataSet es un TQuery')


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #4  
Antiguo 10-06-2010
gandalf_uy gandalf_uy is offline
Miembro
 
Registrado: ene 2005
Posts: 39
Poder: 0
gandalf_uy Va por buen camino
Muchas gracias, me funcionó, ahora no entiendo porque cuando le corría el debbuging no me mostraba nada en esa propiedad, por eso la descarté...

Saludos y gracias nuevamente...
Responder Con Cita
  #5  
Antiguo 10-06-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Es por que esa propiedad es en realidad es un método de clase (class function TObject.ClassName: string) y para poder obtener su valor en tiempo de debuging necesitas especificar la opción Allow side effects and function calls en las propiedades de la variable/método/propiedad que estás viendo (Watch properties)...


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
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
Cómo saber qué tipo de SO es. Ziara C++ Builder 4 22-09-2008 14:04:21
como saber el tipo de datos de un campo miguelml Varios 4 17-11-2005 09:36:17
Como modificar valores desde un dbgrid q esta asociado a un QUERY? fmonte SQL 12 26-08-2004 23:25:22
Como saber el tipo de acceso a una carpeta Javi2 Varios 3 22-07-2004 12:56:44
Saber cuando se activa el dataset asociado a un TDBGrid __cadetill OOP 4 17-06-2004 13:37:24


La franja horaria es GMT +2. Ahora son las 20:08:27.


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