| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
CimentoMan Novato

Registrado: Sábado, 7 de Junho de 2014 Mensagens: 6
|
Enviada: Ter Jul 22, 2014 1:19 pm Assunto: ZQuery: Field not found |
|
|
Caros, ainda tenho algumas dúvidas sobre a ferramenta zeos.
Preciso fazer com que um Edit receba um dado de uma coluna da tabela com base em um dado inserido num outro Edit para o código.
Ex.: Inserindo o código 16 no edit1 teria que aparecer o nome fantasia 'zezinho ltda' do cliente de código 16.
No meu form tenho os 2 edits e um botão para efetuar esse processo.
Agora segue o código que estou utilizando para isso:
| Código: | procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule2.ZQuery1.SQL.Clear;
DataModule2.ZQuery1.SQL.Add('select fantasia from cliente where codigo = :pCod');
DataModule2.ZQuery1.ParamByName('pCod').AsInteger := StrToInt(Edit1.Text);
DataModule2.ZQuery1.ExecSQL;
Edit2.Text := DataModule2.ZQuery1.FieldByName('fantasia').AsString;
end; |
Mas quando eu rodo a aplicação e coloco o código 16 e aperto o Button1 ele dá erro dizendo: 'ZQuery1: field 'fantasia' not found.
Por que raios ele não encontra o dado da coluna?  |
|
| Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Ter Jul 22, 2014 1:32 pm Assunto: Re: ZQuery: Field not found |
|
|
Já tentou rodar esse SQL fora do Delphi, por ex, no IBExpert pra ver se o corre o mesmo erro? Este campo existe na tabela? Você adicionou os Fields no dataset? _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
| Voltar ao Topo |
|
 |
CimentoMan Novato

Registrado: Sábado, 7 de Junho de 2014 Mensagens: 6
|
Enviada: Ter Jul 22, 2014 1:39 pm Assunto: Re: ZQuery: Field not found |
|
|
| wjuniordias escreveu: | | Já tentou rodar esse SQL fora do Delphi, por ex, no IBExpert pra ver se o corre o mesmo erro? Este campo existe na tabela? Você adicionou os Fields no dataset? |
Sim.
Executei o mesmo código em sql no pgadmin e ele me retorna o valor desejado. |
|
| Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Ter Jul 22, 2014 2:08 pm Assunto: Re: ZQuery: Field not found |
|
|
Então, como vc está passando o SQL em tempo de execução, não é interessante add os fields no dataset. _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
| Voltar ao Topo |
|
 |
CimentoMan Novato

Registrado: Sábado, 7 de Junho de 2014 Mensagens: 6
|
Enviada: Ter Jul 22, 2014 2:16 pm Assunto: Re: ZQuery: Field not found |
|
|
| wjuniordias escreveu: | | Então, como vc está passando o SQL em tempo de execução, não é interessante add os fields no dataset. |
Na verdade não estão adicionados os fields no dataset.
Eu setei as propriedades do ZConnection e do ZQuery em tempo de execução, no OnCreate do DataModule.
Nem sei o que fazer mais para funcionar isso...  |
|
| Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Ter Jul 22, 2014 2:34 pm Assunto: Re: ZQuery: Field not found |
|
|
A sim, tente dar um "Open" ao invés de "ExecSQL";
Dica:
Query com comandos Insert, Update, Delete use "ExecSQL";
Query com comandos Select use "Open". _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Jul 22, 2014 2:45 pm Assunto: |
|
|
Não sei está relacionado ao seu problema, mas testa aí.
Quando usar select 'Select' utilize o 'Open' e não o 'ExeqSql'.
| Código: |
procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule2.ZQuery1.SQL.Clear;
DataModule2.ZQuery1.SQL.Add('select fantasia from cliente where codigo = :pCod');
DataModule2.ZQuery1.ParamByName('pCod').AsInteger := StrToInt(Edit1.Text);
DataModule2.ZQuery1.Open;
Edit2.Text := DataModule2.ZQuery1.FieldByName('fantasia').AsString;
end;
|
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
CimentoMan Novato

Registrado: Sábado, 7 de Junho de 2014 Mensagens: 6
|
Enviada: Ter Jul 22, 2014 3:06 pm Assunto: Re: ZQuery: Field not found |
|
|
| wjuniordias escreveu: | A sim, tente dar um "Open" ao invés de "ExecSQL";
Dica:
Query com comandos Insert, Update, Delete use "ExecSQL";
Query com comandos Select use "Open". |
Muito obrigado wjuniordias! Era isso mesmo!!
Obrigado também ao natanbh1.
Esses detalhes ainda vão me matar...  |
|
| Voltar ao Topo |
|
 |
wjuniordias Profissional


Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Ter Jul 22, 2014 3:19 pm Assunto: Re: ZQuery: Field not found |
|
|
tudo de bom. _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
| Voltar ao Topo |
|
 |
|