Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Na Hora Do Cálculo


Guest - Thaise -

Pergunta

Guest - Thaise -

Putz galera eu to com um problemão.

Não consigo fazer cálculo (soma) com os campos da tabela ligada ao BD.

Melhor dizendo...

como eu faço o if verificando se o campo da tabela está vazio ?

ex:

if dmbanco.qryTestecampo = null then

campo x :=0

é assim??

como eu faço??

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá,

Veja se é isso

Neste código corre a tabela1 e da uma mensagem para os campos null

with Query1 do
 begin
   Close;
   SQL.Clear;
   SQL.Add('Select * From tabela1');
   Open;
   while not(EOF) do
   begin
    if FieldByName('CAMPO').AsString = '' then
     ShowMessage(FieldByName('ID').AsString + ' CAMPO NULL');
    next;
   end;
 end;
Para somar siga a mesa idéia, no Loop While coloque uma variável ex: SOMA
var Soma: integer;

begin
Soma:=0;
with Query1 do
 begin
   Close;
   SQL.Clear;
   SQL.Add('Select * From tabela1');
   Open;
   while not(EOF) do
   begin
    Soma:=Soma+FieldByName('CAMPO').AsInteger;
    next;
   end;
 end;
end;

Abs.

Kiko

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

é como o Kikonanet falou realmente, mas você teria que substituir os campos NULL por zero dentro da Select pra evitar erro, verifique se eu banco suporta a função NVL, tipo:

SQL.Add('Select Nvl(CAMPO,0) CAMPO From tabela1');

usando o mesmo código que o Kikonanet passou, ficaria assim:

var Soma: integer;

begin

  Soma:=0;

  with Query1 do begin

     Close;

     SQL.Clear;

     SQL.Add('Select Nvl(CAMPO,0) CAMPO From tabela1');

     Open;

     while not(EOF) do begin

        Soma:=Soma+FieldByName('CAMPO').Value;

        next;

     end;

  end;

end;

E se num aceitar essa função NVL faz assim:

var Soma: integer;

begin

  Soma:=0;

  with Query1 do begin

    Close;

    SQL.Clear;

    SQL.Add('Select * From tabela1');

    Open;

    while not(EOF) do begin

        if FieldByName('CAMPO').Value <> Null Then

          Soma:=Soma+FieldByName('CAMPO').Value;

        next;

    end;

  end;

end;

Abs. Progr'amador. wink.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...