Duvida no comando sql
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
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
Curtidas 0
Respostas
Afarias
21/02/2005
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+
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+
GOSTEI 0
Rjcerri
21/02/2005
Valeu, com sua ajuda passei por essa.
GOSTEI 0
Rjcerri
21/02/2005
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?
GOSTEI 0
Rjcerri
21/02/2005
tenho que fazer um select dentro do update?
GOSTEI 0
Afarias
21/02/2005
|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+
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+
GOSTEI 0
Rjcerri
21/02/2005
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);
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);
GOSTEI 0
Afarias
21/02/2005
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+
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+
GOSTEI 0