FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Invalid data type for multiplication in dialect 3
Que tal compañeros.
Tengo un problema redondeando una multiplicación. Intento redondear un precio que es calculado en la misma query.
Necesito que el precio quede redondeado, pero al poner el Round tengo el error Invalid data type for multiplication in dialect 3 En la tabla tengo alojados el costo del articulo, y el porcentaje de iva y luego por el parámetro agrego el margen de ganancia que también se almacena en la tabla. De momento estoy ejecutando 2 querys seguidas, en una misma transacción, en la segunda hago solo ROUND(L1,0). Última edición por amadis fecha: 14-08-2021 a las 01:29:02. |
#2
|
|||
|
|||
Hola,
Creo que el problema puede estar en el espacio que hay después de los dos puntos del parameto P1. Es decir el codigo deberia ser:
|
#3
|
|||
|
|||
Hola, ese espacio lo puse aqui porque sino aparecía una Carita, El nombre del parametro no tiene espacio entre el dos puntos
|
#4
|
||||
|
||||
¿edporcentage.text tiene un valor correcto? comas, puntos, etc.
|
#5
|
|||
|
|||
edporcentage.text puede ser un entero o decimal con coma.
Siempre valores validos. Igual el problema es el PARAMETRO EN SI, y no lo que le asigno. Si yo le asigno un numero cualquiera al parámetro da el mismo error. Si multiplico por otro campo de tabla no hay drama |
#6
|
||||
|
||||
Pon el (:P1) entre paréntesis, por probar.
|
#7
|
|||
|
|||
No, el parentesis no me hace diferencia.
Lo que si me funciona, es si en lugar de usar un parámetro ahí, pongo una VARIABLE con el valor que le asigno al parámetro. Pero meter una variable me implica trabajo extra, cortar el string sql concatenarlo e la variable. Y luego asegurarme bien de que los números tengan como coma decimal el punto y no la coma, ya que sino da otro error. |
#8
|
|||
|
|||
¿y no existe alguna forma se asignar dos veces el mismo campo?
He probado y me da error, pero quizá hay otra forma que permita luego de asignar el valor al campo precio, en otra instrucción redondearlo.?? |
#9
|
||||
|
||||
¿Qué componentes estás usando? Me refiero al QAct.
|
#10
|
|||
|
|||
QAct es un FDQuery (Firedac)
|
#11
|
||||
|
||||
He hecho una sencilla prueba y me ha funcionado normalmente, pero con IBX, no tengo firedac.
|
#12
|
|||
|
|||
Hola Amadis y saludos a todos...
Pues yo he hecho la prueba con Firedac y tambien me falla, pero el mensaje es diferente: expression evaluation not supported A continuación lo he intentado directamente desde IBExpert con la siguiente sentencia: y obtengo el mismo error. Después de investigar un poco, parece que Firebird "desconfía" del tipo de parámetro, y solo va a permitir la sentencia si aseguramos su tipo, por lo que la sentencia siguiente me ha funcionado sin problemas:
De todas formas, me desconcierta que con IBX funcione. Saludos ... |
#13
|
|||
|
|||
Resuelto
Muchisimas Gracias, ese CAST era la solución...
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
old format or invalid type library delphi | heiverp | Varios | 4 | 10-03-2016 18:02:50 |
Error Unkown SQL Data Type(0) | mRoman | Conexión con bases de datos | 3 | 11-10-2012 14:14:39 |
Invalid Field type (Blob) | mrnovice | Conexión con bases de datos | 5 | 08-01-2010 16:45:39 |
Error: Class EoleException, old format or invalid type..... | gaby_stars | Varios | 0 | 26-06-2008 02:18:07 |
Domain ó Standard data Type? | jwmoreira | Firebird e Interbase | 2 | 01-03-2007 22:36:35 |
|