Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2006
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: Aug 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.115
Poder: 14
rretamar Va camino a la fama
Unhappy TQUERY a partir de TTABLE

Hola gente.
Posteo esta consulta por si a alguien se le presentó esta inquietud alguna vez. Estoy escribiendo una pequeña aplicación que usa en forma local una tabla en formato Paradox.

Tengo una tabla asociada a un objeto TTABLE a la cual le aplico diferentes criterios de filtrado (propiedad FILTER) y a través de un índice limito los registros que se hacen visibles a través de SETRANGE.

La pregunta es: hay alguna forma de usar un componente TQUERY que ejecute una instrucción SQL (de agrupamiento y conteo, en este caso) únicamente en los registros que aparecen visibles en el componente TTABLE ?.

La idea es filtrar la tabla (TTABLE) según un criterio especificado por el usuario, y sobre esa tabla cfiltrada realizar un cálculo de totales (a través de una sentencia SQL).

Saludos desde Argentina
Responder Con Cita
  #2  
Antiguo 15-08-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: May 2005
Ubicación: Torreón, México
Posts: 4.721
Poder: 18
ContraVeneno Va por buen camino
No tengo una respuesta específica para tu pregunta...

Pero, ¿cuál es el problema de hacer el query directo en la base de datos? es decir, ¿por qué tiene que ser sobre el TTable?
__________________

Responder Con Cita
  #3  
Antiguo 23-08-2006
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: Aug 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.115
Poder: 14
rretamar Va camino a la fama
Smile

Hola.
La idea es que la sentencia SQL se ejecute sobre un subconjunto de registros (los filtrados por TTtable a través de Setrange y Filter), lo que me permitiría realizar estadísticas rápidamente (usando Count, Average y otras funciones).

El software es un registro de números telefónicos. Un módulo se encarga de registrar los números en una tabla Paradox (está funcionando las 24 horas). O sea, por cada llamada telefonica agrega un registro a la tabla. Cada registro confiene datos como el numero telefonico marcado, lafecha, la hora, y otros datos relacionados con la linea.

El otro módulo es arrancado por el usuario, y permite ver el listado de las llamadas, agregar comentarios, borrar registros, entre otras operaciones. Esto lo hago a través de un componente TTable, un DBNavigator y asocio todo eso a una grilla, para permitir la visualización y edición de la tabla.
Esta tabla puede ser filtrada entre dos fechas (por el indice, usando SetRange) y por otros criterios (a través de Filter).

La idea es ejecutar una sentencia SQL (a través de un componente TQuery) sobre los registros de esa tabla (Ttable), pero no sobre todos, sino sobre los que están visibles en ese momento (o sea los filtrados). Eso me permitiría realizar varias estadísticas sobre ese listado, gracias a la potencia del lenguaje sql.

En definitiva, usar un TQuery enlazado al TTtable.

Espero haberme explicado mejor, y pido disculpas si en el primer post no fui lo suficientemente claro.

Saludos cordiales desde Argentina, y espero seguir participando en el foro.

Ramón
Responder Con Cita
  #4  
Antiguo 23-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: May 2003
Posts: 7.424
Poder: 23
Lepe Va por buen camino
Puedes intentarlo, no he usado setrange jamás, así que no sé como funcionan.

En principio,
- añadiría el TQuery de la paleta bde
- configurar su propiedad DatabaseName al alias que uses (si usas alguno)
- configurar su propiedad Database (si usas un objeto TDatabase).
- (se supone que en la propiedad SessionName tienes que especificar la misma que usas en el TTable, que por defecto será "Default")
- escribes la sentencia en su propiedad SQL.
-En su propiedad Datasource, elige el Datasource que tienes ligado al TTable filtrado. Con esto debería operar sobre el conjunto ya filtrado.

Si el último paso no te funciona, tendrás que borrar esa propiedad (dejarla en blanco) y añadir las restricciones a la propia cadena de SQL.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 23-08-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: May 2005
Ubicación: Torreón, México
Posts: 4.721
Poder: 18
ContraVeneno Va por buen camino
Cita:
Empezado por Lepe
... y añadir las restricciones a la propia cadena de SQL....
esto era lo que tenía en mente. Hacer la consulta directo con el query utilizando los mismo filtros que ya tiene el TTable, más los que se van a necesitar....
__________________

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Crear TTable a partir de un TQuery ContraVeneno Conexión con bases de datos 10 23-06-2005 22:38:49
TTable VS TQuery TDworD Conexión con bases de datos 4 18-11-2004 20:47:30
TQuery o TTable mutant09 Conexión con bases de datos 1 28-04-2004 09:41:57
Tquery y actualizacion de reg de TTable miguelb SQL 3 01-12-2003 18:39:45
Ttable y Tquery dvdjr Varios 3 20-05-2003 17:15:57


La franja horaria es GMT +2. Ahora son las 09:54:44.


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