Fórum Valor negativo em query SQL #387823

04/10/2010

0

Caros

Tenho a seguinte query montanda no código.

    if chkEstMin.Checked then
      CommandText := CommandText + ' AND ((' + SaldoPrinc + ')) - P.QTE_RES) < P.EST_MIN)';


Acontece que quando esse valor P.EST_MIN é negativo, a query não funciona.
O que pode ser?

Valeu
Elton Ésqui

Elton Ésqui

Responder

Posts

04/10/2010

Eduardo Marcolongo

Por favor, passe um exemplo de valor.Provavelmente o resultado da (' + SaldoPrinc + ')) - P.QTE_RES) seja maior que o P.EST_MIN
Responder

Gostei + 0

04/10/2010

Deivison Melo

Elton Ésqui,   Qual o banco de dados utilizado?   1º - Poderia efetuar o tratamento já direto na query!   2º - Você poderá utilizar a function ABS (para pegar o valor absoluto) Exemplos no link: http://www.delphibasics.co.uk/RTL.asp?Name=Abs     Qualquer coisa estou à disposição!!!   Emanoel Deivison
Responder

Gostei + 0

04/10/2010

Leonardo Xavier

Cara é o seguinte a query trabalha com dois valores -1 e 0, quando o valor é 0 é porque a querry nao localizou o registro, mas quando a querry é -1 o registro foi localizado. Se seu sistema esta dando erro com o valor de indice a ser localizado ou comparado seria interesnte vc verificar seu código para ver onde poderia estar o problema, pode ser inclusive com o relacionamenteo de suas tabelas. Mas verifique ai se houver alguma coisa que eu possa ajudar você poste aqui.
Responder

Gostei + 0

04/10/2010

Elton Ésqui

Então...mais ou menos assim:

Saldo disp.: 15
Estoque min.: 50

Nesse caso, se o check estiver marcado ele vai exibir o produto, porque o saldo disp. é menor que o est. min.
Acontece que o prod. pode ser reservado e gerar o estoque begativo, aí qdo o est. min é -15, por exemplo, não exibe.

Nesse momento ele faz isso no código:
Trecho
    if chkEstMin.Checked then
      CommandText := CommandText + ' AND ((' + SaldoPrinc + ')) - P.QTE_RES) < P.EST_MIN)';

    if radioTipo.ItemIndex = 0 then
      CommandText := CommandText +
      ' ORDER BY P.DESC_DEN,P.COD_DEN, P.NOME, P.CODIGO'
    else
      CommandText := CommandText +
      ' ORDER BY P.DESC_DEN,P.COD_DEN, P.NOME, P.COD_REF';

    AbreTabela(True, cdsProd, 'Produto');

    if RecordCount = 0 then
    begin
      MessageBeep(0);
      Application.MessageBox('Nenhum produto selecionado.', 'Informação',
        MB_ICONINFORMATION
        + MB_OK);
      btOk.Enabled := True;
      ProdIni.SetFocus;
      Exit;
    end;


O banco é ORACLE, mas utilizo vários aqui que podem utilizar o programa, como MSSQL, Firebird, Interbase e etc.
Responder

Gostei + 0

07/10/2010

Elton Ésqui

Como faço pra finalizar o tópico?
Responder

Gostei + 0

07/10/2010

Eriley Barbosa

Para finalizar alguém tem que responder para você.
Responder

Gostei + 0

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

Aceitar