Newsgroup: it.comp.lang.delphi
Titolo: database TTABLE e filtri ??!!

Salve, sono un principiante nella 
programmazione di Delphi 4.0, sto 
lavorando attorno ad una database
creato con delphi (database desktop)
tipo paradox, non riesco a filtrare bene 
il database, vorrei inserire su un TEDIT
una parola od alcune parole seguite da un
asterisco cosi' da poter selezionare
alcuni record che rispondono alla filtraggio
voluto, ma noto che quando metto l'asterisco 
sul campo tedit il programma si blocca dicendomi
"aritmetic in filter expression not supported"
come posso fare?, forse tedit non è il componente
adatto per il filtraggio?
Usando filter dall'object inspector
filter Cognome='IL*'
filtered true
il filtraggio funziona! 
Come posso mettere questo comando in run-time?
E' cosi' difficile filtrare con filter?
Per ora non voglio usare sql, voglio fare le cose
poco a poco per capirle, grazie.
Giovanni
P.S. allego la procedura che uso per il filtro:
procedure TFORM1.Edit2change (sender: tobject);
begin
if edit 2.text<>''
then begin
table1.filter:='Nota='+edit2.text;
table1.filtered:true
end
else
begin
table1.filtered:=false;
end;
end;

"Giovanni ILARI":
scusami, ho visto che hai aperto un altro thread,
e ti rispondo qui:
| procedure TFORM1.Edit2change (sender: tobject);
| begin
| if edit 2.text<>''
| then begin
| table1.filter:='Nota='+edit2.text;
| table1.filtered:true
| end
| else
| begin
| table1.filtered:=false;
| end;
| end;
TTable non lo uso, ma visto che sono buono,
l'ho provato (tanto come u RAD come delphi ci si
mette un'attimo!)
allora, se devi cercare stringhe di caratteri devi mettere
l'espressione da cercare tra apici ovvero
NomeCampoStringa='IL*' e non IL* (il compilatore
lo intende come un'operazione di moltiplicazione! ;))
ti ho corretto il codice:
procedure TFORM1.Edit2change (sender: tobject);
begin
 if Edit2.text<>''
  then begin
   table1.filter:='Nota='+QuotedStr(edit2.text); // oppure
'Nota'+''''+edit2.text+'''';
   table1.filtered:true
  end
  else table1.filtered:=false;
end;
end;
Ciao! :)
Alan Solo

...


ok, ora il tutto funziona, ho messo nel componente tedit il max numero dei
caratteri che puo' accettrae il campo, altrimenti il rpogramma sdi bloccava
di nuovo, usando max lenght, perfetto, grazie.
Ora ho il problema di sfruttare il filtraggio di questo database su quick
report che sta su di una altra form, se metto TTABLE su quickreport mi da
tutti i records presenti sul database, per sfruttare il filtro che ho nella
form1 come posso fare?, cosa devo scrivere sulla form dove c'e' quick
report?
scusami se ti sto tediando con queste mie domande..........ma ancora sono
asciutto di object pascal!
ciao e grazie ancora.
Giovanni
Alan Solo ha scritto nel messaggio


"Giovanni ILARI":
| Ora ho il problema di sfruttare il filtraggio di questo database su quick
| report che sta su di una altra form, se metto TTABLE su quickreport mi da
| tutti i records presenti sul database, per sfruttare il filtro che ho
nella
| form1 come posso fare?, cosa devo scrivere sulla form dove c'e' quick
| report?
non devi mettere il TTable sul qr, quello che devi fare
e' collegare la sua proprieta' DataSet al TTable,
ed e' fatta! ;)
Se non dovessi "vedere" il TTable nel qr (se sono in unit/form diverse),
aggiungi la unit che lo contiene alle uses della unit dove c'e' il qr...
Per questioni di ordine di solito gli oggetti che riguradano il DB
vengono buttati in un DataModule (file new), ma non e' indispensabile..
Ciao,
Alan Solo

...
