Como colocar parametros no Dataset

06/01/2006

0

Caros colegas,

Estava utilizando uma consulta sql assim :
Select * From Vendas
no compenente TSQLQuery da paleta DBExpress, mas no código do programa, ao executar a query eu trocava por:

CDSVenda.Close;
QyVenda.SQL.Clear;
QyVenda.SQL.Add(´Select * From ´VENDA´ Where NUM_OPER = :mNum_oper´);
QyVenda.ParamByName(´mNum_oper´).AsInteger:= 10;
CDSVenda.Open;

Vendo a bobeira, resolvi alterar no TSQLQuery e criar um parâmetro no componente, no caso mNum_Oper, ftInteger e ptInput.
Dei o Fetch Params no ClientDataset, tudo certinho, e alterei o código assim:

CDSVenda.Close;
QyVenda.ParamByName(´mNum_oper´).AsInteger:= 10;
CDSVenda.Open;

Acontece q após a referida mudança a consulta só funciona na segunra vez q eu a executo.
Na primeira vez vem vazio, eu fecho e executo novamente, daí traz o registro.

Estou usando Delphi 7, com Firebird 1.5, Windows XP e DbExpress (SQLQuery + Dataprovider + ClientDataSet).

O q pode ser ?

Agradeço a ajuda dos colegas,

Marcello.


Marcello

Marcello

Responder

Posts

09/01/2006

Marcello

:( sobe.


Responder

10/01/2006

Emerson Nascimento

meu colega... quando você trabalha com clientdatasets não é recomendado manipular de forma nenhuma o dataset origem.

acrescente poAllowCommandText à propriedade Options do datasetprovider e faça tudo no clientdataset.

CDSVenda.Close;
CDSVenda.CommandText := ´Select * From ´VENDA´ Where NUM_OPER = :mNum_oper´;
CDSVenda.Params.ParamByName(´mNum_oper´).AsInteger:= 10;
CDSVenda.Open;


Responder

15/01/2006

Marcello

:D Valeu emerson.en.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar