GARANTIR DESCONTO

Fórum Duvida no comando sql #49461

21/02/2005

0

DataCliente.DMCliente.ZQueryTranspro.SQL.Add(´update transpro set dirseg=(:dir), tempressu=(:temp) where codigo=:cod´);
DataCliente.DMCliente.ZQueryTranspro.ParamByName(´dir´).AsInteger:=DataCliente.DMCliente.ZQueryTranspro.fieldbyname(´ideal´).AsInteger;/100*60;
quando coloco assim da erro na hora de compilar (Tipo incompativel extended com integer)
DataCliente.DMCliente.ZQueryTranspro.ParamByName(´temp´).AsInteger:=DataCliente.DMCliente.ZQueryTranspro[´ideal´]/100*60;
E assim da erro rodando (field ideal not found)

não tenho a menor ideia


Rjcerri

Rjcerri

Responder

Posts

21/02/2005

Afarias

divisões usando o operador ´/´ sempre retornam um ponto-flutuante (sendo assim não é possível assinalar o resultado para um Inteiro)

vc deve usar o operador ´div´ para divisões inteiras ou então usar uma função para ´converter´ o ponto-flutuante para inteiro, como por exemplo Round() ou Trunc()

Ex:

CampoTal.AsInteger := x div y;

ou

CampoTal.AsInteger := Round(x / y);


T+


Responder

Gostei + 0

21/02/2005

Rjcerri

Valeu, com sua ajuda passei por essa.


Responder

Gostei + 0

21/02/2005

Rjcerri

Outra coisa me preciptei na resposta anterior, agora ele não da mais o erro durante a compilação, mas quando executa ele da o erro de filed not found, eu posso fazer isso que eu estou fazendo na query, e um update estou especificando os campos que serao atualizados que dirseg e tempressu e estou dando pra eles o resultado daquele operação de um campo que não esta na query, isso da certo?


Responder

Gostei + 0

22/02/2005

Rjcerri

tenho que fazer um select dentro do update?


Responder

Gostei + 0

22/02/2005

Afarias

|mas quando executa ele da o erro de filed not found,

sei... este é outro problema... onde exatamente?!


|eu posso fazer isso que eu estou fazendo na query,

o q?


|e um update estou especificando os campos que serao atualizados que
|dirseg e tempressu e estou dando pra eles o resultado daquele operação
|de um campo que não esta na query, isso da certo?

:?: :?: :?:


T+


Responder

Gostei + 0

22/02/2005

Rjcerri

Na mesma linha que a gente colocou o round, ele agora da o erro FIELD IDEAL NOT FOUND. A minha duvida é se eu posso fazer isso, durante o update declarar que o campo dirseg recebera outro campo mas ele nem e citado no comando.

DataCliente.DMCliente.ZQueryTranspro.SQL.Add(´update transpro set dirseg=(:dir), tempressu=(:temp) where codigo=:cod´);
DataCliente.DMCliente.ZQueryTranspro.ParamByName(´dir´).AsInteger:=round(DataCliente.DMCliente.ZQueryTranspro.fieldbyname(´ideal´).AsInteger/100*60);


Responder

Gostei + 0

22/02/2005

Afarias

não, não pode fazer o q vc está fazendo,

se o campo faz parte da tabela faça:

update transpro set dirseg=(ideal/100*60), tempressu=(:temp) where codigo=:cod´);

se não, faça outra query para pegar o valor do campo IDEAL


T+


Responder

Gostei + 0

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

Aceitar