Newsgroup: it.comp.lang.delphi
Titolo: Filter strano.

Ciao a tutti stranamente nn capisco perchè partendo da qui arrivati
all'ultima istruzione mi va in errore
ma la cosa strana è che FMain.variabile risulta valorizzata e il campo
miocampo esiste, quindi e proprio sul filter che va in errore o almeno cosi
sembra.
      if not DataModule.TMiaTabella.Active then
       DataModule.TMiaTabella.Open;
     DataModule.TMiaTabella.Filtered := False;
     DataModule.TMiaTabella.Filtered := True;
     DataModule.TMiaTabella.Filter := 'miocampo = '''+FMain.variabile+'''';
Grazie
Antonio.

)

 ha scritto nel messaggio
news:wTwHc.75097$G%.32982@tornado.fastwebnet.it...

Sposterei almeno la seconda riga in fondo, cosi:
     DataModule.TMiaTabella.Filtered := False;
     DataModule.TMiaTabella.Filter := 'miocampo = '''+FMain.variabile+'''';
     DataModule.TMiaTabella.Filtered := True;

 sull'istruzione ed eseguila verificando tutte le condizioni.
Fatto gia prima di mandare il post altrimenti come sapeco che le variabili
erano valorizzate e che l'errore lo dava li?
Cmq ho provato a impostare prima il filter e poi a impstare filtered :=
true, uguale a prima stesso risultato.

      DataModule.TMiaTabella.Filter := 'miocampo =
'''+FMain.variabile+'''';
da sostituire con:
with DataModule.TMiaTabella do begin
 filtered:=false;
 showmessage('miocampo = '''+FMain.variabile+'''');
 filter:='miocampo = '''+FMain.variabile+'''';
 filtered:=true;
end;
Ciao

 erano valorizzate e che l'errore lo dava li?
Credo di essermi spiegato male.
Oltre all'aver verificato che le variabili siano valorizzate, sei sicuro 
che siano valorizzate come si deve? ;-)
Se tenti di visualizzare la proprietà Filter che hai impostato a runtime 
concatenando i valori cosa ottieni? Si tratta di un filtro 
sintatticamente e formalmente valido?


 che siano valorizzate come si deve? ;-)
Certo, cmq ho risolto l'errore nn avevo creato un oggetto.
 Ciao
Antonio

> ridondante. Basta fare: DataModule.TMiaTabella.Open;
No so se sono d'accordo
1) se la tabella è già aperta perchè dovrei riaprirla.
2)se la tabella è già aperta scrivendo :
               DataModule.TMiaTabella.Open;
   nn mi va in errore o si potrebbe incasinare il bde?
Cmq ho risolto, il problema è che nn avevo creato un oggetto.
Ciao
Antonio.

 Certo, cmq ho risolto l'errore nn avevo creato un oggetto.
Quindi il filtro non c'entrava nulla...?


    nn mi va in errore o si potrebbe incasinare il bde?
assolutamente no.
Ciao!

 Quindi il filtro non c'entrava nulla...?
nn c'entrava o almeno c'entrava nel modo seguente :
DataModule.TMiaTabella.Filter := 'miocampo = '''+FMain.variabile+'''';
ed FMain nn era creato ma in fase di debugging il valore FMain.variabile
c'era ed era anche esatto, cmq creando fmain ho risolto il problema, penso
dipenda dal fatto che il filtro stava all'interno di una dll ed FMain invece
no.
Antonio.

 ha scritto nel messaggio
news:2l7opcF...@uni-berlin.de...

Ma sarà cosi ma l'apertura di una tabella nn impiega piu tempo di un if ?
poi puo essere pure che mi sto sbagliando.
Ciao.

 poi puo essere pure che mi sto sbagliando.
Il fatto è che il metodo Open non fa altro che impostare la proprietà 
Active a True; se la tabella è già aperta, la proprietà Active vale già 
True, pertanto non accade nulla poichè c'è già un'istruzione *if* 
nell'implementazione del componente che si occupa di verificare se il 
valore di Active che si vuole impostare è diverso dal precedente.
Ciao!


 c'era ed era anche esatto
Come può essere possibile? :-)


 Come può essere possibile? :-)
qui non serve il debugger, ma un esorcista ;)

qui non serve il debugger, ma un esorcista ;)
quoto :)
	Ciao
	MassimoB
 
---------------------------
http:\\
www.massimobeschi.it

 ha scritto nel messaggio
news:jWyHc.75293$G%.61228@tornado.fastwebnet.it...

In effetti mi associo, anche perchè se avrei visto che il valore o non c'era
o nn era corretto me ne sarei accorto e avrei provveduto, cmq in effetti
forse c'è un motivo e ora spiego :
fmain chiama una form che sta in una  dll
a questo punto la form chiamata  usa una variabile che sta in fmain ed è qui
che ho dovuto creare fmain affinchè mi funzionasse il filtro;
ps : sono io lesorcista?
ahahahahha.
Ciao
Antonio.


Ok capito allora provvederņ alla correzione grazie del suggerimento e grazie
a tutti per avermi risposto.
Ciao
Antonio.

 filtered false, in modo da chiuderne un eventuale precedente.
pensala un po' come alla procedura per entrare in auto.
Apro lo sportello
Entro in auto
Chiudo lo sportello.
Mentre
Entrare in auto
aprire lo sportello
chiudere lo sportello
puo' portare conseguenze indesiderate :)
Ciao

This message was cancelled from within Mozilla.