Amigo, ESTOQUE dentro do select está apenas como alias do campo 
TPRODUTO.QUANTIDADE mais só por curiosidade eu já tirei o alias fazendo 
referencia apenas no campo QUANTIDADE e mesmo assim me retorna 0, ficando da 
seguinte forma:

strSql := 'SELECT TPRODUTO.ID, TPRODUTO.DESCRICAO, TPRODUTO.QUANTIDADE ';
strSql := strSql + 'FROM TMOV, TITMOV, TPRODUTO ';
strSql := strSql + 'WHERE TMOV.ID = TITMOV.IDMOV ';
strSql := strSql + 'AND TITMOV.IDPRODUTO = TPRODUTO.ID ';
strSql := strSql + 'AND TPRODUTO.ID = ' + IntToStr(IdProduto) ;
With IBQueryEstoque do
begin
Close;
SQL.Clear;
SQL.Add(strSql) ;
Open;
end;
EstoqueAtual := IBQueryEstoque. FieldByName( 'QUANTIDADE' ).AsFloat;

----- Mensagem original ----
De: Ricardo LG <linogonzalez@ gmail.com>
Para: [EMAIL PROTECTED] os.com.br
Enviadas: Terça-feira, 15 de Janeiro de 2008 15:35:36
Assunto: Re: [delphi-br] Dúvida na utilização do IBQuery

Desculpe Angelo
Dentro do seu select você não tem um campo ESTOQUE apenas a quantidade.
Por isso o valor 0.

nesse caso acredito que você deveria fazer ou um select sum(Quantidade) as
estoque, em outra query.

Em 15/01/08, Angelo Louzada <angelolouzada@ yahoo.com. br> escreveu:
>
> Amigos, estou utilizando Delphi 7 + Interbase 6 e estou com uma dúvida:
>
> No Interbase quando eu executo o script abaixo me retorna o resultado
> correto.
>
> SELECT TPRODUTO.ID <http://tproduto. id/>, TPRODUTO.DESCRICAO,
> TPRODUTO.QUANTIDADE
> FROM TMOV, TITMOV, TPRODUTO
> WHERE TMOV.ID <http://tmov. id/> = TITMOV.IDMOV
> AND TITMOV.IDPRODUTO = TPRODUTO.ID <http://tproduto. id/>
> AND TPRODUTO.ID <http://tproduto. id/> = 13
>
> Eu preciso acessar o valor do campo tproduto.quantidade no delphi e para
> isso estou fazendo da seguinte maneira:
>
> strSql := 'SELECT TPRODUTO.ID <http://tproduto. id/>, TPRODUTO.DESCRICAO,
> TPRODUTO.QUANTIDADE ';
> strSql := strSql + 'FROM TMOV, TITMOV, TPRODUTO ';
> strSql := strSql + 'WHERE TMOV.ID <http://tmov. id/> = TITMOV.IDMOV ';
> strSql := strSql + 'AND TITMOV.IDPRODUTO = TPRODUTO.ID<http://tproduto. id/>';
> strSql := strSql + 'AND TPRODUTO.ID <http://tproduto. id/> = ' +
> IntToStr(IdProduto) ;
> With IBQueryEstoque do
> begin
> Close;
> SQL.Clear;
> SQL.Add(strSql) ;
> Open;
> end;
>
> strSql é uma variável do tipo String, IdProduto é uma variável que possui
> o ID do produto que selecionei em um grid.
>
> IdProduto := IBQueryMovimento. FieldByName( 'CODPRODUTO' ).AsInteger;
>
> Em modo de depuração eu passo o mouse em cima da variável strSql após o
> recebimento de todo o sql e certifico que o mesmo recebeu de forma correta o
> valor do id do produto ficando exatamente igual ao script que testei no
> Interbase.
>
> A grande questão: Declarei uma variável do tipo Double chamada
> EstoqueAtual para receber o valor do campo TPRODUTO.QUANTIDADE da seguinte
> forma:
>
> EstoqueAtual := IBQueryEstoque. FieldByName( 'ESTOQUE' ).AsFloat;
>
> Só que o valor retornado é sempre 0 e quando rodo o script no Interbase
> tenho a absoluta certeza que possuo valor no campo, nesse exemplo era para
> obter o valor 78.
>
> Alguém sabe me dizer aonde estou errando?
>
> Abraço a todos.
>
> Angelo Louzada
>
> Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> armazenamento!
> http://br.mail. yahoo.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

[As partes desta mensagem que não continham texto foram removidas]

Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail. yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]





      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]

Responder a