Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaeloliveira83

[Resolvido] Consulta por parâmetros

Recommended Posts

Banco Firebird

 

Criei uma consulta por parâmetros :

 

Eu utilizei um SQLConnection; SQLDataSet, ClientDataSet, DataSetProvider, DataSource, DBgrid.

 

No SQLDataSet linkei para o SQLConnection e defini uma consulta (

select * from Tabela where Nome like :Nome
)

No ClientDataSet chamei o DataSetProvider e adicionei Add all Fields dando 2 cliques no ClientDataSet.

No DataSetProvider chamei o SQLDataSet;

E por fim no DBGrid chamei o DataSource

 

Criei um botão e um Edit.

 

No botão adicionei

 

ClientDataSet.Close;
ClientDataSet.Params[0].AsString := Edit1.Text + '%';
ClientDataSet.Open;

Só que aparece a seguinte mensagem de erro.

 

List index out of bounds(0). Process stopped. use Step or Run to continue.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Raffael, tenta fazer da seguinte forma:

 

SQLDataSet1.Close;

SQLDataSet1.Params.ParamValues['Nome'] := Edit1.Text + '%';

ClientDataSet.Open;

 

Pq o parametro e o SQL estao no DataSet não o ClientDataSet.

Tente verifica no DATASET se o DataType do parâmetro esta como ftString.

 

Este erro acontece pq ele não acha o parametro no ClientDataSet no caso. ( "out of bounds(0)" )

 

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta o seguinte :

 

No ClientDataSet clique com o botão direito e em seguida em 'Fetch Params', isso fará com que os parametros do SQLDataSet sejam 'copiados' para o ClientDataSet

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou perfeito consulta!

 

Funcionou utilizando qual método, é bom colocar aqui para que pessoas com a mesma dúvida saibam como resolver!!

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.