Supongo que tienes enlazado SQLDataset y ClientDataSet a través de un proveedor. Si es así, no debes abrir y cerrar el SQLDataSet, de eso ya se encarga el proveedor. Es posible que el error venga de ahí.
Código Delphi
[-]
procedure TfrmBancos.Button1Click(Sender: TObject);
begin
ClientDataSet1.Close;
SQLDataSet1.CommandText:= ' ';
if (Length( edit1.Text) > 0) then
begin
SQLDataset1.CommandText := 'SELECT * FROM BANCOS WHERE NOM_BANCO LIKE :P_NBANCO';
SQLDataSet1.ParamByName('P_NBANCO').AsString := Edit1.Text + '%';
end
else
begin
SQLDataSet1.CommandText := 'SELECT * FROM BANCOS ORDER BY BANCO' ;
end;
Edit1.Clear;
ClientDataSet1.Open;
end;