Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Filtro y null (https://www.clubdelphi.com/foros/showthread.php?t=1497)

Producto77 17-06-2003 17:13:18

Filtro y null
 
Hola a tod@s:
Mi problema es q tengo una tabla con dos campos Proveedor y Obrero. El caso es que quiero filtrar la tabla para que me muestre solo los registros que tenga valor en Proveedor, o los que tienen valor el Obrero.
He pensado en filtrar la tabla tal que
tb.Filter := 'Proveedor is null' //cuando quiero ver los obreros.
y
tb.Filter := 'Obrero is null' //cuando quiero ver los proveedores.
............pues no funciona el filtro, me muestra todos los registros.

alguien puede ayudarme?

gracias de antemano.

andres1569 17-06-2003 18:36:32

Hola:

¿Has puesto la propiedad Filtered a TRUE? :)

Producto77 17-06-2003 20:36:18

Si, está puesta a true. Yo creo que el problema está en los tres posibles valores que pueden tener,,,los campos son de tipo integer y pueden ser nulos.
es decir:
1º null
2º (vacio)
3º un integer
esto no me pasaba con delphi5, ahora con el 7 si.

marcoszorrilla 17-06-2003 20:54:18

Intrigado por tu pregunta acabo de hacer una prueba en D5 y D7, me he creado una tablita Paradox, y le he colocado un campo texto y tres de tipo entero, uno de ellos lo he llamado Otro, que es el que utilizo para la prueba.

Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Filter:='Otro is null';
Table1.Filtered:=True;
end;

Todo funciona correctamente, en campos numéricos que yo sepa vacio y nulo es lo mismo, 0 no es nulo.

Por lo tanto con el filtro me muestra todos los campos que están vacios, sea porque lo estuvieron siempre o sea porque yo he borrado el contenido antes de hacer el filtro.

Un Saludo.

Producto77 17-06-2003 20:59:04

Se me olvidó decirte que la base de datos es InterBase, y cuando utilizo Marathon para ver los registros tengo campos con valor <null> otros que no pone nada (vacios) y otros con el integer.

marcoszorrilla 17-06-2003 21:08:47

Prueba con esto otro a ver:
Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Filter:='Otro = null';
Table1.Filtered:=True;
end;

Un Saludo.

Producto77 17-06-2003 21:23:14

Gracias por el interes prestado,,, espero poder ayudarte alguna vez,,, si mi corta experiencia me lo permite.

Gracias x 10000

Cabanyaler 18-06-2003 10:20:46

Si, todo está muy bien, pero en lugar de utilizar filtros que ralentizan exageradamente el sistema, ¿pq no utilizamos una vista o una simple SQL?.
Digo yo, vamos.....
;)

mariajoiz 19-06-2003 10:27:53

Hola,

esto no es una respuesta, más bien otra pregunta.

Es cierto que los filtros ralentizan, pero como con SQL no puedo actualizar

¿En qué consiste una vista?, y es posible actualizar los datos en la vista?


La franja horaria es GMT +2. Ahora son las 06:07:26.

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