Hola,
Estoy usando zeos para los componentes en lazarus.
La tabla principal es compras
compras
--------
idautoincremental integer
fecha
numero de compra consecutivo
clavecuenta integer
clavecliente integer
concepto blob
cuentas
--------
clavecuenta integer autoincremental
nombrecuenta varchar
cliente
------
clavecliente integer autoincremental
nombrecliente blob
fechaalta
a grosso modo es lo basico (el autoincremental en firebird no lo hay pero esta con generadores)
en el dbgrid uso el query clientes y relaciono la clavecuenta con el query cuentas, y clavecliente con clientes para convertir el numero a nombre en un campo calculado.
Tambien hay un filtro que puedo consultar los clientes eligiendo desde un dblookupcombobox y sale toda la lista.
En lineas generales nose como puedo hacer que el dbgrid saque solo los nombres de clientes que estan dentro del mes, asi no tengo que leer toda la tabla.de clientes, pero no se me ocurre.
se que con filtros nos podemos ahorrar mucho trabajo innecesario porque no vamos a usar todo.
Y la otra parte, que seria elegir de un dblookupcombobox todos los clientes, seria mas facil saber la clave e introducirla, seria lo mas logico, mas practico y mas rapido.
Tambien tengo un filtro en sql con un like, que, a medida que vamos poniendo letras que conforman el nombre del cliente, (pongo una letra y busca, añado otra y busca, etc) va reduciendo la cantidad de registros, pero tambien se necesita leer toda la tabla principalmente. Esto esta muyh bien cuando es dentro de una red local y con pocos registros, pero imagino que a medida que va engordando la tabla, acabara tambien tardando mas.
las tablas que os he puesto son reducidas a ver si me entero un poco con menos campos.
No se si estos ejemplos sirven de algo para sacar algo en limpio.
y gracias por contestar.