Params problema
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....
Por favor quem souber me ajudar fico mto agradecido...
Creio que seja um problema mto simples pra quem jah manja.......
Vlw..
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
Curtidas 0
Respostas
Marcio.theis
05/10/2005
Porque vc não utiliza uma qry para fazer isto ?
Fica mais simples....
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....
GOSTEI 0
Bruno Belchior
05/10/2005
tente isso:Não se esqueça de inserir na propriedade [b:457e4f64bc]Options[/b:457e4f64bc] do DataSetProvider a opção [b:457e4f64bc]poAllowCommandText[/b:457e4f64bc]...
with ClientDataSet do begin Close; CommandText := ´Select * from Tabela where Codigo = :Par1´; Params[0].AsString := Edit1.Text; Open; end;
GOSTEI 0
Ramms
05/10/2005
Awe veio vlw funcionou, mas alguem poderia me ensinar como faz com Params, pq se naum eu num aprendo......
GOSTEI 0
Ramms
05/10/2005
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
Vlw...awe
GOSTEI 0
Bruno Belchior
05/10/2005
bem... você teria de recaregar o parâmetro com o valor quatro e reabrir a tabela... no caso um ClientDataSet...
GOSTEI 0
Ramms
05/10/2005
[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?
como eu faço isso vei?
GOSTEI 0
Ramms
05/10/2005
Alguém por favor urgente!!!
GOSTEI 0
Armando.boza
05/10/2005
eu uso assim:
funciona legal.
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.
GOSTEI 0
Ramms
05/10/2005
tah dando erro no report de Operation not supported kra...
GOSTEI 0
Armando.boza
05/10/2005
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.
GOSTEI 0
Ramms
05/10/2005
To usando o Fortes kra, configurei tudo certo, disso tenho certeza.......
GOSTEI 0
Armando.boza
05/10/2005
To usando o Fortes kra, configurei tudo certo, disso tenho certeza.......
cara, ta dificil ...... :roll:
GOSTEI 0
Adriano Santos
05/10/2005
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´;
GOSTEI 0