Pessoal, essa foi a gota d’água. Descobri um novo bug, esse me afeta em cheio. Se você usa dbExpress e Firebird, fique muito atento a isso. Para reproduzir siga os seguintes passos:

  1. Coloque em um form um SQLConnection, SQLQuery, DataSetProvider, ClientDataSet, DataSource, DBGrid, Button e um Edit. Conecte todos os objetos de dados para que possamos ver o resultado do CDS na grid.

  2. Conecte o SQLConnection no banco employee.gdb que acompanha os demos do Delphi (..\BDS\3.0\Demos\CSharp\Applications\CalendarQuery\employee.gdb).

  3. No botão, coloque o seguinte código:

<code>  ClientDataSet1.Close;
  SQLQuery1.SQL.Text := 'SELECT * FROM CUSTOMER WHERE STATE_PROVINCE = :STATE';
  SQLQuery1.ParamByName('STATE').AsString := Edit1.Text;
  ClientDataSet1.Open;
</code>
  1. Agora digite “ON” no edit e clique no botão. Um registro será mostrado.

  2. Agora digite “CA” no edit e clique novamente no botão. Se você estiver usando o D7, novos registros serão mostrados, mas se você estiver usando o D2005, NADA ACONTECE!

Na minha opinião é um bug absurdo, que afeta muita gente.

E o pior!!! Ele já foi reportado para a Borland em janeiro! Veja aqui no QC#10708. Antes do Update 2 do Delphi 2005 e nada de solução até agora, mesmo depois de dois updates!!!

Sei que já está rolando o field test para o Dexter, a nova versão do Delphi, mas e esses problemas?? E quem comprou o Delphi 2005?? Terá que comprar o 2006 para ter o bug resolvido? Acho isso uma grande falta de respeito com os clientes.. Parece brincadeira da Borland.