PDA

Ver la Versión Completa : Filtro y null


Producto77
17-06-2003, 17:13:18
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.


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:

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?