Ver Mensaje Individual
  #1  
Antiguo 05-01-2008
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Reputación: 22
David Va por buen camino
Smile 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...

Código Delphi [-]

ClientDataSetCliente.Close;

// si hasta unos 100 clientes funciona bien,pero si pongo más 150 o así, ya da error
QueryCliente.SQL[3] := 'Where (Cliente in (1,2,3,4,10,12));

ClientDataSetCliente.open;

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
Responder Con Cita