Não entendi muito bem sua pergunta. O processo que eu faço é o seguinte: Eu monto o comando SQL e atribuo o mesmo pra propriedade CommandText do ClientDataSet que eu uso na tela. Depois eu Atribuo os parâmetros necessários no ClientDataSet e em seguida dou um Open() nele. No momento que eu dou o Open ele já retorna o Erro e só me traz os valores que não caem naquela situação da conversão. É isso que você queria saber? Exato, exato. Vai chegando fim de tarde, usuário ligando e daí já viu né... =D É, não sei no Delphi2006 como isso funciona, mas dar o erro direto no Open é estranho... Se tivesse que dar o erro, acredito que daria na hora em que você fosse jogar o valor para algum campo, variável, etc. Esse erro dá se você não fizer cast, se der cast pra varchar, vai na boa, é isso? Já tentou fazer o cast para float também?