FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Una Query me da error al pasarle una SQL larga
Hola
Explico lo que me ocurre, saco un listado de Clientes, con sus facturas, uso firebird, utilizo una una IBQuery al que engancho un provider y un TClienteDataSet. Lo que hago es que antes de abrir el client dataSet, le añado a la Query, en su SQL una cadena con los clientes que necesito, que pueden ser 100, 200, etc..., el caso es que cuando hay muchos clientes, me da error al abrir el clientDataSet. Explico con un ejemplo más visual(los nombres de los componentes me los invento, para que se entienda mejor) La Query , QueryCliente , tiene esta SQL : Select misCampos from TablaClientes (donde digo mis campos, pues obviamente estan CodigoCliente,Nombre,Telefono,Direccion,etc...
Como digo funciona hasta un número de clientes, luego da error, como si no se puediera hacer la SQL tan larga, he intentando poner la SQL en varias lineas, algo así: Where (Cliente in (1,31,3131,12,33, 12,313,313,3131)); pero da igual, sigue dando error al pasarle una cadena de una cierta longitud. Es inevitable, que pase esto ? o hay alguna solución, esa es mi pregunta. Un saludo |
#2
|
||||
|
||||
Hola David
Que error es el que te da en forma precisa... te da algun mensaje... no te saldria mejor que en vez de poner el codigo, pongas algun campo en la tabla y realizas el filtro por los que cumplen dicha condicion Salu2
__________________
BlueSteel |
#3
|
||||
|
||||
La cláusula IN en Firebird 1.5 tiene un límite de 1.500 elementos, puesto que dices da error en 100 o 200, creo es la forma de añadirlo al query.
No entiendo por qué accedes al SQL con índices (entre corchetes), no deberías pensar que tienes espacio en memoria asignado para trabajar con él. Dicho de otra forma, usa los métodos Add que tiene la propiedad sql. Supongo que dicha restricción del where, lo haces en tiempo de ejecución, así que no tendrás problemas con los strings. Atención al "Add": También podrías partir la cadena, incluso para hacerla más legible:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Sentencia sql muy larga? | ancara | MySQL | 6 | 28-06-2007 17:54:24 |
URL demasiado larga | halizia | PHP | 3 | 20-12-2006 14:37:38 |
PAsarle parametros a un trigger .. | ingel | SQL | 2 | 19-05-2006 18:36:32 |
Pasarle un objeto a una DLL | adlfv | OOP | 3 | 19-08-2005 20:42:49 |
Pasarle un parameto al With ...??? | ingel | Varios | 4 | 30-01-2004 22:29:41 |
|