Fórum Erro no componente ADOQuery - usado dinamicamente. #420261

20/07/2012

0

Boa noite.

Alguem consegue identificar o erro neste componente.

ADOQuery

Acho que o erro esta no ParamByName.

Obrigado.

with DM_GERAL.SQLQueryGeneral do
begin
Close;
SQL.Clear;
SQL.Add(SELECT NO_TRADUCTION, DESCRIPTION );
SQL.Add(FROM TRADUCTION );
SQL.Add(WHERE LANGUAGE = :iTraduction );
SQL.Add(ORDER BY NO_TRADUCTION );

ParamByName(iTraduction).ParamType := ptInput;
ParamByName(iTraduction).DataType := ftInteger;
ParamByName(iTraduction).AsInteger := cmbTraduction.ItemIndex+1;

Open;

{ ... Segue o programa }

end;
Rfb

Rfb

Responder

Posts

22/07/2012

Bruno Leandro

na verdade qual seria o erro que ocorre? pois é possivel usar sql dinamica normalmente

tente utilizar conforme modelo a seguir e veja se funciona

with DM_GERAL.SQLQueryGeneral do
begin
Close;
SQL.Clear;
SQL.Add(SELECT NO_TRADUCTION, DESCRIPTION );
SQL.Add(FROM TRADUCTION );
SQL.Add(WHERE LANGUAGE = :iTraduction );
SQL.Add(ORDER BY NO_TRADUCTION );
ParamByName(iTraduction).AsInteger := cmbTraduction.ItemIndex+1;
Open;
end;
Responder

Gostei + 0

22/07/2012

Deivison Melo

Imagino que esteja usando o MS SQL Server ou pelo menos o Access, pois o componente ADO é otimizado para que seja utilizado com esses bancos de dados.

Segue abaixo um exemplo prático de uso dos componentes ADO.

procedure TfrmCadastro.btnPesquisaCEPClick(Sender: TObject);
var
strSQL: String;
begin
if Trim(edtCEP.Text = ) then
begin
ShowMessage(Preencha o campo!);
edtCEP.SetFocus;
Exit;
end
else
with DM.QueryEndereco do
begin
close;
SQL.Clear;
strSQL:=SELECT ZH_LOGRAD, ZH_BAIRRO, ZH_CIDADE, ZH_ESTADO FROM SZH050 WHERE ZH_CEP = :ZH_CEP;
SQL.Add(strSQL);
Parameters.ParamByName(ZH_CEP).Value:= edtCEP.Text;
Open;
edtEndereco.Text:=Trim(DM.QueryEndereco.FieldByName(ZH_LOGRAD).Value);
edtBairro.Text:=Trim(DM.QueryEndereco.FieldByName(ZH_BAIRRO).Value);
edtCidade.Text:=Trim(DM.QueryEndereco.FieldByName(ZH_CIDADE).Value);
edtEstado.Text:=Trim(DM.QueryEndereco.FieldByName(ZH_ESTADO).Value);
if DM.QueryEndereco.Eof then
begin
ShowMessage(CEP não localizado!);
edtCEP.SetFocus;
end;
end;
end;

PS. Caso as postagens não solucionar os problemas mencionados, por favor, explicar de forma detalhada suas necessidades para que possamos ajudar vc da melhor forma possível.
Responder

Gostei + 0

23/07/2012

Rfb

Obrigado.

A definição do campo estava errada.

o correto é: Parameters.ParamByName(ZH_CEP).Value:= edtCEP.Text;

Obrigado.
Responder

Gostei + 0

23/07/2012

Deivison Melo

Por favor, finalizar o tópico...
Responder

Gostei + 0

23/07/2012

Rfb

Bom dia.

Desculpe, mais como isso é feito?

Obrigado.
Responder

Gostei + 0

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

Aceitar