Ir ao conteúdo

Ajuda com código no Delphi


icool

Posts recomendados

Postado

Me ajudem a achar o que tem de errado nesse código de busca ao banco de dados.

procedure TFrmFornecedores.BitBtn1Click(Sender: TObject);
begin
Dm.SimpleDataSetFornecedores.close;
DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT := 'SELECT * FROM FORNECEDORES';
case radiogroup1.ItemIndex of
0: begin
if edit1.Text <> '' then
begin

DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT :=
DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT +
' WHERE CDFORNECEDOR = :Pcdfornecedor';
Dm.SimpleDataSetFornecedores.DataSet.Params.ParamByName('Pcdfornecedor').Value:=
StrToInt(Edit1.Text);
end;
if radiogroup2.ItemIndex = 1 then

DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT:=
DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT +
' ORDER BY CDFORNECEDOR';
if radiogroup2.ItemIndex = 2 then

DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT:=
DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT +
' ORDER BY CDFORNECEDOR DESC';
end;
1: begin
if edit1.Text <> '' then
begin

DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT:=
DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT +
' WHERE DCFORNECEDOR CONTAINING :Pdcfornecedor';

Dm.SimpleDataSetFornecedores.DataSet.Params.ParamByName('Pdcfornecedor').Value:=

Edit1.Text;
end;
if radiogroup2.ItemIndex = 1 then

DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT:=
DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT +
' ORDER BY DCFORNECEDOR';
if radiogroup2.ItemIndex = 2 then

DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT:=
DM.SIMPLEDATASETFORNECEDORES.DATASET.COMMANDTEXT +
' ORDER BY DCFORNECEDOR DESC';
end;
end;
Dm.SimpleDataSetFornecedores.open;
end;

Quando eu coloco o valor no edit1 e não seleciono nada no radiogroup2 ele faz a busca e aparece só as linhas da busca normal, agora quando eu marco algo no radiobox2 para ficar em ordem crescente ou decrescente dá um erro assim : No value for parameter 'Pcdfornecedor' (quando estou buscando pelo CDFORNECEDOR) e No value for parameter 'Pdcfornecedor' (quando estou buscando pela descrição)

só não da erro quando eu não escrevo nada no edit1, dae mostra todos as linhas da database na ordem que eu escolho na Radiobox2

o que esta errado?

Postado

Conseguí resolver, o problema era a função que adicionava o ORDER BY estar antes da que atribui o valor do Edit1 ao param Pcdfornecedor, a função que atribui tem que ficar por último não sei o motivo.

Pode Fechar o Tópico.

  • 10 meses depois...
  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...