Erro no componente ADOQuery - usado dinamicamente.
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;
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
Curtidas 0
Respostas
Bruno Leandro
20/07/2012
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;
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;
GOSTEI 0
Deivison Melo
20/07/2012
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.
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.
GOSTEI 0
Rfb
20/07/2012
Obrigado.
A definição do campo estava errada.
o correto é: Parameters.ParamByName(ZH_CEP).Value:= edtCEP.Text;
Obrigado.
A definição do campo estava errada.
o correto é: Parameters.ParamByName(ZH_CEP).Value:= edtCEP.Text;
Obrigado.
GOSTEI 0
Deivison Melo
20/07/2012
Por favor, finalizar o tópico...
GOSTEI 0
Rfb
20/07/2012
Bom dia.
Desculpe, mais como isso é feito?
Obrigado.
Desculpe, mais como isso é feito?
Obrigado.
GOSTEI 0