Fórum Params problema #298492

05/10/2005

0

Awe galera, eu ainda naum entendi como funciona essa parada de Params, mas vamos lah....
eu tenho uma tabela lah e talz, fiz um relatório que pega os dados dessa tabela, na minha tabela tenho o registro 1, 2, 3, 4 e etc.... eu só qro imprimir um que eu vou digitar num edit, eu fiz esse código mas ele naum me retorna nada....

DM.ClientDataset2.CommandText := (´SELECT * FROM ENCOMENDAS WHERE ID_ENCOMENDA = :IDENC´);
DM.ClientDataset2.Params[0].AsInteger := StrtoInt(cod.Text);
DM.ClientDataset2.Active := True;
DM.ClientDataset2.Open;
Form6.RlReport1.Preview;


Por favor quem souber me ajudar fico mto agradecido...
Creio que seja um problema mto simples pra quem jah manja.......
Vlw..


Ramms

Ramms

Responder

Posts

05/10/2005

Marcio.theis

Porque vc não utiliza uma qry para fazer isto ?

DM.qry.Close;
DM.qry.SQL.Clear;
DM.qry.SQL.Add(´SELECT * FROM ENCOMENDAS´);
DM.qry.SQL.Add(´WHERE ID_ENCOMENDA = ´ + cod.Text); 
DM.qry.Open;
Form6.RlReport1.Preview; 


Fica mais simples....


Responder

Gostei + 0

05/10/2005

Bruno Belchior

tente isso:
with ClientDataSet do
begin
  Close;
  CommandText := ´Select * from Tabela where Codigo = :Par1´;
  Params[0].AsString := Edit1.Text;
  Open;
end;
Não se esqueça de inserir na propriedade [b:457e4f64bc]Options[/b:457e4f64bc] do DataSetProvider a opção [b:457e4f64bc]poAllowCommandText[/b:457e4f64bc]...


Responder

Gostei + 0

05/10/2005

Ramms

Awe veio vlw funcionou, mas alguem poderia me ensinar como faz com Params, pq se naum eu num aprendo......


Responder

Gostei + 0

05/10/2005

Ramms

Awe as 2 dicas funcionaram, só q qdo eu saio do relatório e vou imprimir outro ele só me mostra o msm, tipo eu escolhi o 3, saio vou imprimir o 4 ele me mostra o 3....
Vlw...awe


Responder

Gostei + 0

05/10/2005

Bruno Belchior

bem... você teria de recaregar o parâmetro com o valor quatro e reabrir a tabela... no caso um ClientDataSet...


Responder

Gostei + 0

05/10/2005

Ramms

[quote:5dda648d85=´Bruno Belchior´]bem... você teria de recaregar o parâmetro com o valor quatro e reabrir a tabela... no caso um ClientDataSet...[/quote:5dda648d85]

como eu faço isso vei?


Responder

Gostei + 0

06/10/2005

Ramms

Alguém por favor urgente!!!


Responder

Gostei + 0

06/10/2005

Armando.boza

eu uso assim:

with QRYPesquisa do begin
   close;
   sql.clear;
   params.clear;
   sql.add(´SELECT * FROM ENCOMENDAS WHERE ID_ENCOMENDA = :IDENC´);
   parambyname(´IDENC´).asinteger := strtoint(campoedit.text);
   open;
end;


funciona legal.


Responder

Gostei + 0

06/10/2005

Ramms

tah dando erro no report de Operation not supported kra...


Responder

Gostei + 0

06/10/2005

Armando.boza

tah dando erro no report de Operation not supported kra...


Amigo, me diz uma coisa, vc ta usando o quickreport né ... vc configurou tudo certinho no quickreport??? colocou os campos ligados na query? ligou o relatorio na query tb??? ...

eu to achando que o problema é na configuração do relatório e não na busca do registro na tabela.


Responder

Gostei + 0

06/10/2005

Ramms

To usando o Fortes kra, configurei tudo certo, disso tenho certeza.......


Responder

Gostei + 0

06/10/2005

Armando.boza

To usando o Fortes kra, configurei tudo certo, disso tenho certeza.......


cara, ta dificil ...... :roll:


Responder

Gostei + 0

06/10/2005

Adriano Santos

Awe veio vlw funcionou, mas alguem poderia me ensinar como faz com Params, pq se naum eu num aprendo......


Faça o seguinte teste:

Coloque um TQuery na tela e vá na propriedade SQL e digite algo como:

SELECT * FROM SUA_TABELA WHERE SEU_CAMPO =  :SEU_VALOR


Confirme e vá na propriedade PARAMS do TQuery. Vai notar que o TQuery criou pra vc um Parâmetro chamado SEU_VALOR que vc pode configurar algumas coisas como por exemplo o tipo de dado.

Bom, quando vc faz a select em tempo de execução, algo como:

  With MinhaQuery do
  begin
    Close;
    SQL.Clear;
    SQL.ADD(´SELECT * FROM SUA_TABELA WHERE SEU_CAMPO = :SEU_VALOR´);
    Open;
    //aqui imprime etc
  end;


O que na realidade vc está fazendo é criando o parâmetro em runtime.
Em ambos os casos você vai passar o valor para o parâmetro usando a seguinte sintax:

   MinhaQuery.ParamByName(´SEU_VALOR´).AsString := ´AAA´;
   //ou
   MinhaQuery.Params[0].AsString := ´AAA´;


O princípio é o mesmo.

Só uma dica: use a primeira opção, e mais claro no código fonte.
   MinhaQuery.ParamByName(´SEU_VALOR´).AsString := ´AAA´;



Responder

Gostei + 0

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

Aceitar