I Params usati da IBDataSet non sono i parametri standard che si trovano in tutti gli altri componenti, ma sono tipi specifici pensati per InterBase.
Ho lavorato pochissimo con IBDataSet, quindi non vorrei dire un'eresia, ma trattandosi di un'implementazione particolare spero che il reperimento del parametro attraverso il nome non distingua tra maiuscole e minuscole ('Param1' <> 'PARAM1').
Inoltre, il componente che utilizzo abbastanza spesso (SimpleDataSet) per rappresentare un DataSet esegue una "pulizia" dei valori dei parametri (probabilmente perchè li ricrea) quando lo statement SQL cambia.
Nel tuo codice, vedo che prima definisci un parametro, poi li assegni un valore e successivamente modifichi di nuovo lo statement SQL aggiungendo la clausola ORDER BY: sei sicuro che in quel momento, il parametro ha ancora il valore precedentemente assegnato?
Per entrambi i casi, puoi verificare in fretta usando la finestra di Evaluate di Delphi inserendo una chiamata alla funzione ParamByName e, in caso positivo, cercando di ispezionarne il valore per vedere se è stato mantenuto.
Purtroppo non mi viene in mente altro.
Ciao!![]()