Fórum Passar parametros para um TClientDataSet como eu faço????? #345393
31/08/2007
0
procedure TFrmConsultaCliente.Button7Click(Sender: TObject);
begin
With CDS1 do begin
Close;
Params.Clear;
CommandText := ´select * from cadastro_clientes where codigo = :COD1´;
FetchParams;
//Params.FindParam(´COD1´).Value := Trim(Edit1.text);
Params.ParamByName(´COD1´).Value := Trim(Edit1.text);
// tanto faz eu usar o FindParam ou PramByName nunca consigo o
// resultado na primeira vez sempre tenho que dar dois cliques para
// conseguir o resultado
Open;
end;
end;
Eu já fiz varios tipos de codigo como por exemplo
With CDS1 do
Close;
CommandText := ´select * from cadastro_clientes where codigo = :COD1´;
Params.Clear;
FetchParams;
Params.ParamByName(´COD1´).Value := Trim(Edit1.text);
ou seja já coloquei em varias posições diferentes as linha de codigo mais nunca tenho o resultado na primeira vez sempre é na segunda
Luciano_f
Curtir tópico
+ 0Posts
31/08/2007
Luciano_f
dessa forma se faz necessario o seguinte codigo
CDS1.Params.ParamByName(´COD1´).ParamType := ptInputOutput;
Gostei + 0
31/08/2007
Emerson Nascimento
procedure TFrmConsultaCliente.Button7Click(Sender: TObject); begin with CDS1 do begin Close; CommandText := ´select * from cadastro_clientes where codigo = :COD1´; Params.ParamByName(´COD1´).AsString := Trim(Edit1.text); Open; end; end;
Gostei + 0
31/08/2007
Luciano_f
pelo menos aqui isso não dá certo não...
Gostei + 0
31/08/2007
Emerson Nascimento
eu trabalho dessa forma e nunca tive qualquer problema.
Gostei + 0
31/08/2007
T3r3son
procedure TFrmConsultaCliente.Button7Click(Sender: TObject);
begin
with CDS1 do
begin
Close;
CommandText := ´select * from cadastro_clientes where codigo = :COD1´;
Params[0].AsString := Edit1.text;
Open;
end;
end;
Utilizo em minhas consultas algo semelhante ao o que o Luciano e o Guinther têm passado nas video-aulas sobre clientdataset e funciona!!!
[]´s
Evaristo
Gostei + 0
01/09/2007
Luciano_f
Não traz registros
fica nulo
só vai trazer registro quando eu dar um segundo clik no botão
e dá forma como voce disse mesma coisa
isso só é resolvido se eu colocar
Gostei + 0
01/09/2007
Roger1976
procedure TFrmConsultaCliente.Button7Click(Sender: TObject);
begin
with CDS1 do
begin
Close;
CommandText := ´select * from cadastro_clientes ´ +
´where codigo = :COD1´;
Params.ParamByName(´COD1´).AsInteger := strtoint(Edit1.Text);
Open;
// se nao houver registro
if isempty then
showmessage(´codigo nao encontrado´);
end;
end;
Eu sempre uso o mesmo tipo de dados definido na tabela para os parâmetros. Neste exemplo, suponho que o codigo tenha sido definido como inteiro na tabela. Essa é a minha forma de trabalho.
Os componentes utilizados neste exemplo são SQLCONNECTION, DATASETPROVIDER, SQLDATASET, CLIENTDATASET e DATASOURCE, e o bd é Firebird.
Qualquer dúvida, é só postar.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)