PDA

Ver la Versión Completa : comparar un campo memo=empty?


NSL94
24-04-2007, 18:31:43
uolas,
soy nuevo en esto del delphi, y no consigo encontrar la manera de comparar un campo memo para saber si esta vacio. es decir lo que busco seria el equivalente de esto:

if campotexto.text=' ' then

pero para un campo memo.
si ya se que es muy basico, y espero no desatar demasiadas risas ;)
si alguien me puede ayudar, muchas gracias de ante mano.
1 saludo! :D

ContraVeneno
24-04-2007, 18:40:24
¿y cuál es el problema con esa instrucción que pusiste?

a mi me funciona perfectamente

if Trim(campotexto.text)='' then
showmessage('vacío');

NSL94
24-04-2007, 18:43:41
Que esto funcciona para un campo texto no para un campo de tipo Memo.
ademas me exprimi mal, me hace falta el codigo para aplicar un filtro, es decir tipo sql
que para el campo texto seria lo siguiente:
filtro:='TAREA_PENDIENTE<>''''' que vendria a poner el filtro a tarea_pendiente<>''
pero claro un campo memo no es un string, y no me deja comparar.

litaralmente lo que quiero sacar es esto para un campo memo
filtro:='campomemo<>empty'

ContraVeneno
24-04-2007, 18:47:58
Yo lo estoy probando con un memo y si funciona.

Incluso funciona si haces:

if length(trim(memo.text))=0 then
showmessage('vacío');

....

if trim(memo.text)='' then
showmessage('vacío');


Revisando la instrucción que tienes, estas comparando el memo con un espacio en blanco. Es decir, tienes:


if campotexto.text=' ' then
...
if campotexto.text='b' then
...
if campotexto.text='' then


tienes un espacio en blanco entre los apóstrofes. Cuando debería de ser:

if campotexto.text='' then

ContraVeneno
24-04-2007, 18:52:31
vamos a ver... parece que ando medio confundido....

si quieres comprar un campo de una base de datos:


with TuDataset do begin
...
if Trim(FieldByName('TUCampoMemo').AsString)='' then
...
...
end; //with

ContraVeneno
24-04-2007, 18:55:12
¿que manejador de base de datos estas utilizando?

NSL94
24-04-2007, 19:07:30
... ya si a eso llego. ;)
estoy programando en una plataforma un poco chunga, se llama quo.
usa codigo delphi.

1) a ver lo que quiero hacer es aplicar un filtro a una tabla.
2) para este filtro me hace falta pasarle en el campo filtro de esta tabla una sentencia sql.
3) esta sentencia debe de filtrarme y devolverme todos los registros que tengan el campo X de tipo memo vacio.
4) yo cuando lo hago para un campo de tipo texto lo hago de la siguiente manera: --- filtro:='NOMBRECAMPOTEXTO<>''''' ---- 5' para que al final la sentencia sea= ---- NOMBRECAMPOTEXTO<>''
5) tomatelo como si quiecieras poner un where en una sentencia sql que diga donde campomemo no este vacio. o no = a empty, null, o lo que sea :D

te pongo la sentencia exacta que le pondria si fuera un campo texto a ver si te situas:

table_QUO.close;
table_QUO.filter:='CAMPOTEXTO<>''''';
table_QUO.filtered:=true;
table_QUO.open;

aqui se estableceria el filtro a CAMPOTEXTO<>'' y solo me devolveria los registros dnd el campotexto no estubiera vacio.
pues bien me hace falta exactamente lo mismo para un campo memo.

ContraVeneno
24-04-2007, 19:14:05
Pues no conozco a Quo y no encuentro referencias en al red a este manejador.

Lo único que te podría recomendar es que revisaras la ayuda de tu manejador para ver si te permite utilizar campos memo en los filtros.

Te digo esto porque por ejemplo: SQL Server no te permite utilizar campos tipo Text en filtros o sentencias Where.