FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Es Posible que a nadie le haya pasado?
Tengo un problema que lo encuentro bastante común y he buscado en
varios foros la solución para éste, pero parece que ha nadie le ha pasado Lo que hago o necesito hacer es bastante simple, ejecuto una consulta Sql "Select campo1,sum(campo2) monto, sum(campo3) dscto from tabla group by campo1". Y los resultados los traspaso a una tabla de paso. El problema es que al traspasar los datos me da el siguiente error: "=" is not a valid floating point value for field 'DSCTO'. He tratado de solucionarlo de varias formas Actualmente me encuentro trabajando con componentes SqlConnection, sqlClientDatase y sqlDataset. También he probado con componentes Interbase,pero me da el mismo error, he cambiado el dialect del componente entre 2 y 3 pero no se solucuina el problema. Lo otro tomé el sql (aunque es muy simple) desde la depuración del sistema y lo pase al IBConsole y éste lo ejecuta y muestra los valores sin problema. Agradeceré cualquier aporte, consulta o regaño ya que no se me ocurre nada mas que hacer para solucionar el problema. ahAa! el servidor de base de datos es firebird 1.5.1. Gr@ci@s. |
#2
|
|||
|
|||
Nunca me ocurrio nada parecido, pero no estará corrompida la base de datos?
|
#3
|
||||
|
||||
Problema en el transpaso
¡Buen día a todos!
Dakar: Dudo mucho que el problema se encuentre en la sentencia SQL (y menos tratándose de una base de datos tan estable como Firebird). Para mi que el problema está en el procedimiento que hace el paso de los datos a la tabla auxiliar. ¿Cómo lo haces? Seguimos en contacto. Al González. |
#4
|
||||
|
||||
Primero que nada, antes de intentar llevar tus procedimientos a un programa siempre tenes que probarlos ejecutando la instruccion en una consola como wisql o ibcomsole (como lo estas haciendo) antes de pasar con los componentes.
La ejecución se realiza como vos decis, por lo que la instrucción esta bien. Luego decis que cargas una tabla auxiliar, que sucede con esta? Ejecutá en la consola para ver si cargo bien la tabla auxiliar y nos contas Suerte y explicate un poquito mas con la tabla auxiliar si ahi esta el problema Crandel
__________________
[Crandel] |
#5
|
||||
|
||||
Si tienes esa consulta o los resultados "ligados" a controles visuales prueba a desconectarlos y volver a lanzar la consulta.
Sospecho que puedes tener un problema con las máscaras, ¿Has definido máscaras en algun DBGrid que tengas "enganchado" a esa consulta o sobre algun DBEdit? Sobre todo en los refrente a puntos y comas para decimales.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
|||
|
|||
Primero que nada gracias a todos por sus respuestas y su interes en mi
problema. Bien voy a tratar de aclarar un poquito mas el problema según me lo han pedido, y no me van a creer que tan simple es lo que hago y el error que me está dando, por eso mi pregunta de ver si a alguien le ha pasado lo mismo. En primer lugar no consideren la tabla de paso, el codigo exacto que tengo para probar que valores me está arrojando la consulta es el siguiente: //////////////// cSql := 'SELECT vendedor, Sum(monto) monto, Sum(devol) devol'+ ' FROM Movim GROUP BY vendedor'; Q.CommandText:= cSql; //Q = SqlClientDataset Q.open; while not Q.Eof do begin ShowMessage('Valor Devol: [ '+Q.fieldbyname('devol').AsString+' ]'); q.Next; end; q.Close; ///////////// Así de simple, y cuando me muestra los valores en pantalla del campo "devol" me muestra: Es decir a devol le pasa un valor "=" que obviamente al tratar de traspasarlo a una vairable entera me arroja el error mencionado en mi primer mensaje. Los campos monto y devol en la base de datos son integer y no existe ningún valor Null; para la mayoria de los vendedores la sumatoria de "Devol" corresponde a 0 y existe un vendedor que tiene Valor en Devol y la sumatoria corresponde a 25000, pero al verlo en pantalla me los muestra así: Como ven es para no creerlo, no se si es algún problema con delphi, la instalación, el componente, no se; lo cierto es que, por cambio de equipo, he tenido que reinstalar el Delphi (6) e igual continua el problema, existen 2 parches de esta versión y también se los instalé. Bueno espero que les haya quedado claro y, si no tienen alguna respuesta, -como yo no la tengo- igual agradezco su interés. Gracias. ¿Es posible que ha nadie le haya pasado? |
|
|
|