Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Ordenar elementos de consulta, tablas dependientes (https://www.clubdelphi.com/foros/showthread.php?t=48485)

Mannu 26-09-2007 09:28:29

Ordenar elementos de consulta, tablas dependientes
 
hola,
tengo una base de datos en access creada con tablas dependientes:

ArbolPrincipal ---> RamaUno

Los elementos de RamaUno dependen de ArbolPrincipal, hasta ahi todo bien.
Le aplicado una manera de ordenar a ArbolPrincipal con:
Código:

void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
{
try
{
if (Column->Field->FieldKind == fkLookup)
Table1->IndexFieldNames = Column->Field->KeyFields;
else
Table1->IndexFieldNames = Column->FieldName;
}
catch(Exception&)
{
}
}

me funciona bien, pero si inserto el mismo codigo en la tabla dependiente ( en el DBGRid que muestra losdatos) me falla o no muestra nada :S

Pense usar Tquery pero tiene problemas, cuando inserto datos nuevos no se actualiza la tabla :S
tengo que hacer un boton con "tquery->Active=false; y luego true" para que funciona, no funciona automaticamente :s

me refiero, si tras hacer un insert o update coloco el tquery active en false y true no hace nada, solo va manualmente :S alguna idea?

Venga espero que me puedan ayudar

Lepe 26-09-2007 09:57:57

Supongo usaras un TTable para editar los datos del registro, en los eventos AfterPost y AfterDelete puedes reabrir el query y parecerá automático.

Saludos

Mannu 26-09-2007 10:47:13

en un principio uso TTable para acceder y hacer cambios en la base de datos, los query esque no me convencen por no querer hacer consultas constantes a la Base de Datos.

Y es un poco rollo no? que el componente TTAble o DBGrid no tengan la opcion SORT al igual que los filtros... me gustaria filtrar *letra* y no solo letra*
me refiero (en su equivalente SQL) "...where campo like %letra%"

Aunque me las podria arreglar si pudiera hacer un SORT a una tabla dependiente con el codigo antes citado ya que este solo funciona con la tabla"padre" supongo que será por los indices :S y los campos clave no?

Lepe 26-09-2007 13:22:03

El TTable es el ineficiente, porque pide TODOS los registros que tenga, si tienes 1 millón de registros, abrir una tabla puede demorar....¿3 minutos? ... y solo en abrirla, no te digo moverte entre registros, etc.

Los TTables vienen de las bases de datos de escritorio, actualmente con SGBBDD como Firebird, interbase, MySql, no se usan.

De hecho, se usan "Vistas"; típico tener una tabla factura con los códigos de productos y otra tabla con las descripciones de esos productos, la Vista es un Sql que une ambas tablas, por tanto tendrás la descripción de los productos que están en cada factura, simple, rápido y sin tener que añadir campos LookUp al DBGrid o TTable.

Saludos

Mannu 26-09-2007 13:50:06

okis investigare un poco mas sobre el uso de sql en vez de tablas

saludosss

JAVH 28-09-2007 00:23:32

Para Access es recomendable usar DBGo (ADO) en vez de BDE (por ser ADO el motor de Microsoft y el cual está incluído en el SO), puedes insertar un TADODataSet, el cual funciona como un Query, con las ventajas de poder actualizar y eliminar datos.

Saludos.

Mannu 02-10-2007 18:29:13

ok gracias, lo voy a probar :)


La franja horaria es GMT +2. Ahora son las 07:03:33.

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