PDA

Ver la Versión Completa : Invalid Parameter en query


Robert
06-01-2004, 20:42:19
Hola con todos.
Tengo un problema respector al query que aqui describo:
query1.close;
query1.params[0].value:=parametrofecha1;
query1.params[1].value:=parametrofecha2;
query1.open;
while not query1.eof do
begin
query2.close;
query2.params[0].value:=query1DOCTO.value;
query2.params[1].value:=query1CLIENTE.value;
query2.open;
end;

Los tipos de datos estan correctos en ambos querys, el problema me da cuando lo ejecuto para un query1 con rango de fechas grandes, llega un momento en el que se cuelga el programa, sin enbargo cuando ejecuto de vuelta desde ese mismo registro que se quedo, NO DA problemas, y asi sucesivamente cada cierto tiempo se cuelga y sale el mensage "Invalid Parameter" o "Capacity not ssuport". Ignoro a que se deba.

Si alguien me pueda ayudar le agradeceria mucho.

marcoszorrilla
06-01-2004, 22:20:48
Tendrías que explicarnos si las dos consultas están conectadas a la misma tabla o a tablas diferentes y que tipo de tablas usas.

En un principio me parece que no está bien planteado, creo que con "Update" sería mucho más sencillo.

Un Saludo.

Robert
07-01-2004, 00:08:11
Efectivamente las tablas son diferentes y estoy usando tablas paradox.

En el mensaje anterior no lo dije pero luego del query2 tengo que llenar una tabla auxiliar con los datos que me devuelve esta.
Pero aunque lo dudo que por aquí esté el problema o tal vez me equivoque.
garcias Marcoszorrilla.

marcoszorrilla
07-01-2004, 08:16:04
Entonces no entiendo bien el planteamiento, la tabla auxiliar que relación tiene con la primera, mejor dinos que es lo que quieres hacer exactamente prescindiendo del SQL.

Un Saludo.

Robert
07-01-2004, 17:03:55
Lo que sucede es que estoy haciendo una extracción de datos de diferentes tablas, pero esta extraccion no lo puedo hacer a toda la tabla por lo tanto como las tablas están relacionadas por algún campo entonces las busquedas la tengo que hacer en cadena, es decir tengo un primer query que me filtra un rango de registros de una tabla, luego alguno de estos campos pasan a ser parametros de otra query y asi puedo tener hasta 3 o 4 querys relacionados. y es por aquí que viene el error cuando le doy un rango muy grande para uno de los querys. por que solo estoy utilizando
query.close;
query.params[x]:=parametro;//los que fueran necesarios
query.open;

No se si ahora me dejo entender, Gracias

__cadetill
07-01-2004, 17:34:58
mmmmm, en lugar de hacerlo de esta manera, por qué no te planteas la posibilidad de cambiar la forma de hacerlo? es decir, en lugar de lanzar 2 querys, por qué no lanzas sólo 1 con un join? Esto te daría lo que quieres de una sola atacada, luego lo único que deberías de hacer es controlar el cambio de DOCTO y CLIENTE.

No se, es una sugerencia

marcial
27-10-2015, 21:04:32
El problema se da, y no se sabe bien porqué, cuando se ejecutan multiples querys (en el caso que yo he tratado cuando llega en un bucle al query 1500 salta ese error de "Invalid Parameter" aun cuando no haya parámetros). En este caso la solución es poner el "LocalShare" del DBE a FALSE